심사 받는 데 최소가 되도록 어떻게 이분탐색을 적용하지 고민이 많았는데 모든 문제가 그렇듯 알면 어렵지 않다..
이분탐색을 어떤 원리로 적용하냐면,
def solution(n, times):
times.sort()
start = 1
end = times[-1]*n
while start<=end:
mid = (start+end)//2
cnt = 0
for t in times:
cnt += mid//t
if cnt >= n:
answer = mid
end = mid-1
else:
start = mid+1
return answer
그리고 잊지 않아야할 것은 이분탐색은 정렬을 먼저 하고 시작해야한다!