title: "[프로그래머스] 입국심사 Python 파이썬 해설 (Level 3) - 이도훈"
cleanUrl: "programmers/43238"
description: "프로그래머스 Level 3 문제 [입국심사]의 풀이를 정리합니다."

문제 설명 및 제한사항

아이디어 및 해결 방법

코드

def solution(n, times):
    # 어쨌든 각 심사관은 안 쉬고 꽉꽉 채워서 받아야 한다.
    # 따라서 시간이 T 주어진다면, 전체 처리 가능한 사람 수는
    # sum(T//t for t in times) 이다.
    # 이 값이 n이 되는 가장 작은 T를 0~n*T 범위 내에서 구하자.
    times.sort()
    
    l, r = 0, n * times[-1]
    while l < r:
        mid = (l + r) // 2
        p = sum(mid//t for t in times)
        
        # 처리 가능한 사람 수가 더 많거나 같으면 시간을 줄여본다.
        if p >= n:
            l, r = l, mid
        # 처리 가능한 사람 수가 적어서, 시간이 더 필요하다.
        else:
            l, r = mid + 1, r
        
    return l

출처

프로그래머스 코딩테스트 연습 https://school.programmers.co.kr/learn/challenges