✔ 풀이를 위한 아이디어
✔ 수정 전 코드
import sys
K, N = map(int, sys.stdin.readline().split())
ori_lan = [int(sys.stdin.readline()) for _ in range(K)]
answer = min(ori_lan)
count = 0
for i in range(answer, 0, -1):
for n in ori_lan:
count += int(n / i)
if count >= N:
break
else:
count = 0
print(i)
✔ 수정 후 코드
import sys
K, N = map(int, sys.stdin.readline().split())
ori_lan = [int(sys.stdin.readline()) for _ in range(K)]
start, end = 1, max(ori_lan)
while start <= end:
mid = (start + end) // 2
count = 0
for l in ori_lan:
count += (l // mid)
if count >= N:
start = mid + 1
else:
end = mid - 1
print(end)
✔ 관련 개념