본문 바로가기

카테고리 없음

프로그래머스 - 입국심사

import sys
from functools import reduce
def solution(n, times):
    maximum, minimum = sys.maxsize, 1
    cur = (maximum + minimum) // 2

    while True:
        if reduce(lambda acc, i: acc + cur//i, times, 0) >= n:
            maximum = cur
        else:
            minimum = cur
        tmp = cur
        cur = (maximum + minimum) // 2
        if tmp == cur:
            break
    return cur + 1

처음봤을땐 이게 뭐지.. 싶었는데 공부하고 다시 오니 정말 간단한 이분탐색문제다