🔻Algorithm/Baekjoon

[Baekjoon] 백준 2805 나무 자르기 Python

_니지 2024. 5. 11. 23:46

https://www.acmicpc.net/problem/2805

 

import sys

n, target = map(int, sys.stdin.readline().split(" "))
tree = list(map(int, sys.stdin.readline().split(" ")))

start = 1
end = max(tree)


while start <= end:
    # 선택된 높이
    mid = (start + end) // 2
    differ = 0

    # 선택된 높이에서 자르면 남는 나무
    for t in tree:
        if t > mid:
            differ += (t - mid)

    # start와 end 조정 -> mid값을 조정하기 위해
    if differ >= target:
        start = mid + 1
    else:
        end = mid - 1


print(end)
728x90
반응형