Search
Duplicate

입국심사

문제 설명 및 제한사항

아이디어 및 해결 방법

코드

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
Python
복사

출처

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