티스토리 뷰

import sys
N, M = map(int, sys.stdin.readline().split())
# N: 나무의 수
# M: 집에 가져가려고 하는 나무 길이
data = list(map(int, sys.stdin.readline().split()))

left = 1
right = max(data)
while left <= right:
    mid = (right + left) // 2
    count = 0
    for i in data:
        if i >= mid:
            count += i - mid
        else:
            count += 0
    if count >= M:
        left = mid + 1
    else:
        right = mid - 1

print(right)

Binary Search로 풀면 된다. 

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/10   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
글 보관함