이것이 취업을 위한 코딩 테스트다. with 파이썬 - 나동빈

N, M = map(int, input().split())
tteoks = list(map(int, input().split()))

start = 0
end = max(tteoks)
answer = 0
while start <= end:
    total = 0
    mid = (start + end) // 2
    for i in tteoks:
        if i > mid:
            total += i - mid
    if total < M:
        end = mid - 1
    else:
        answer = mid
        start = mid + 1
print(answer)
  • 입력 값의 범위가 억단위가 된다면 이진 탐색을 자연스럽게 떠올려야 된다.

0개의 댓글