99클럽 코테 스터디 3일차 TIL, 이분탐색

컴순이·2024년 10월 30일
post-thumbnail

프로그래머스 입국심사

  • 이분탐색

  • 풀이 방식

    • 모든 사람이 심사를 받을 수 있는 시간의 최솟값을 구해야 하므로 시간을 탐색
    • 최대: max(times) * n
  • 오늘의 회고

    • < 인지 <= 인지 answer=right인지 answer=right-1인지 문제에 따라 잘 설정해야 할 것 같은데 한 번에 감이 안 잡힌다
    • 최솟값을 구할 때는 leftanswer (아래 코드엔 반영 못 함)
def solution(n, times):
    left, right = 0, max(times) * n
    answer = 0
    while left <= right:
        time = (left + right) // 2
        screened = sum([time // i for i in times])
        if screened >= n:
            answer = time
            right = time - 1
        else:
            left = time + 1
    return answer
profile
음음

0개의 댓글