algorithm/python

프로그래머스/이분탐색/입국심사

아르르르를를르 2022. 6. 30. 19:30

https://programmers.co.kr/learn/courses/30/lessons/43238

 

def solution(n, times):
    answer = 0

    left = min(times)
    right = max(times) * n
    while left <= right:
        mid = (left + right) // 2
        checked = 0
        for time in times:
            checked += mid // time
            if checked >= n:
                break

        if checked >= n:
            answer = mid
            right = mid - 1
        elif checked < n:
            left = mid + 1

    return answer