알고리즘

[Python | 프로그래머스 | Lv_3] 입국심사

빅디 2024. 7. 26. 19:42
728x90

😉 아이디어

1. 이분탐색을 통해 모든 인원이 통과가능한 최적의 값을 탐색

2. _!시간 // 심사관의 처리시간!_의 합은 해당 시간 동안 처리 가능한 총 인원

😉 풀이

def solution(n, times):
    answer = 0
    left = 1
    right = 1_000_000_000_000 * 1_000_000_000_000
    
    while left <= right:
        mid = left + (right - left) // 2
        total = 0
        # total: 해당시간 동안 처리가능한 인원
        for time in times:
            total += mid // time
            
        # mid 시간 내에 모든 인원이 처리가능한 경우
        if total >= n:
            answer = mid
            right = mid - 1
        else:
            left = mid + 1
            
    return answer

✔️ 링크 : https://school.programmers.co.kr/learn/courses/30/lessons/43238