본문 바로가기

백준파이썬33

백준(파이썬, python) - 2292번 벌집(2022.11.03) 1. 2292번 1) 문제 2) 풀이 n= int(input ()) room = 1 i = 1 while n > room: room += 6 * i i += 1 print(i) 3) 문법 및 풀이과정 - 문제 이해 일종의 군 수열이라고 볼 수 있다. 1군 : 1 2군 : 2 ~ 7 3군 : 8 ~ 19 4군 : 20 ~ 37 ... 위 군 수열의 규칙을 찾아보면 군이 하나씩 증가할 때마다 1군은 1개의 항을 가지고 n군(n>1)은 6(n-1)개의 항을 가짐을 알 수 있다. 따라서 이 항의 개수를 통해 주어진 입력값이 몇 번째 군인지를 알 수 있고 이 때, 몇 번째 군인지가 곧 주어진 방까지 가는 방의 최소 개수라고 볼 수 있다. - 문제 풀이 (1) 입력값을 받는다. (2) room =1 / i = 1 .. 2022. 11. 5.
백준(파이썬, python) - 1712번 손익분기점(2022.11.02) 1. 1712번 1) 문제 2) 풀이 import sys a, b, c = map(int, sys.stdin.readline().split()) if b>=c: print(-1) else: print(int(a/(c-b))+1) 3) 문법 및 풀이과정 (1) 세 수를 입력받는다. (2) 이 때, b가 c보다 크거나 같은 경우는 손익분기점을 넘길 수 없으므로 -1을 print한다. 반드시 등호가 들어가야한다. ( 등호일 경우 zero division 오류가 발생하기 때문이다. (3) b가 c보다 작을 경우엔 a/(c-b)에 int를 씌워 소수점을 없애게 한 후 +1을 하여 손익분기점을 구한다. 2022. 11. 3.
백준(파이썬, python) - 2738번 행렬 덧셈(2022.11.02) 1. 2738번 1) 문제 2) 풀이 import sys n, m = map(int, sys.stdin.readline().split()) matrix_1 = [] for i in range(n): line = list(map(int, sys.stdin.readline().split())) matrix_1.append(line) matrix_2 = [] for i in range(n): line = list(map(int, sys.stdin.readline().split())) matrix_2.append(line) for i in range(n): for j in range(m): if j < m-1: print((matrix_1[i])[j]+(matrix_2[i])[j], end = " ") else.. 2022. 11. 3.
백준(파이썬, python) - 2566번 최댓값 (2022.11.02) 1. 2566번 1) 문제 2) 풀이 import sys max_numbers = [] max_column = [] for i in range(9): low = list(map(int,sys.stdin.readline().split())) max_numbers.append(max(low)) max_column.append(low.index(max(low))) M = max(max_numbers) a = max_numbers.index(M) b = max_column[a] print(M) print(a+1,b+1) 3) 문법 및 풀이과정 (1) max_numbers (각 행의 최댓값들을 모아둘 리스트)와 max_column(각 행의 최댓값의 index를 저장할 list , 즉 각 행의 최댓값이 몇 열에 위.. 2022. 11. 3.
백준(파이썬, python) - 10807번 개수 세기(2022.11.01) 1. 10807번 1) 문제 2) 풀이 import sys n = int(sys.stdin.readline()) numbers = list(map(int,sys.stdin.readline().split())) x = int(sys.stdin.readline()) print(numbers.count(x)) 3) 문법 및 풀이과정 처음엔 for문을 입력받은 n값만큼 돌려야하나 했지만 굳이 for문이 없어도 입력받은 숫자들과 세번째 입력값인 x만으로도 충분히 풀 수 있을 것 같아 위와 같이 풀이해봤다. 2022. 11. 1.
백준(파이썬, python) - 5597번 과제 안 내신 분..? (2022.11.01) 1. 5597번 1) 문제 2) 풀이 import sys numbers = list(range(1,31)) for i in range(28): num = int(sys.stdin.readline().strip()) numbers.remove(num) print(numbers[0],numbers[1], sep = "\n") 3) 문법 및 풀이과정 1부터 30까지 미리 list에 넣어놓고 입력 받은 숫자마다 리스트에서 삭제되도록 했다. 이때 입력값을 28번이나 받아야하기에 시간초과가 될 것을 우려해서 sys를 통해 입력값을 받았다. 2022. 11. 1.