티스토리 뷰

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
링크
«   2025/02   »
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
글 보관함