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
반응형
'🔻PS > Baekjoon' 카테고리의 다른 글
[Baekjoon] 백준 2935 소음 Python (0) | 2024.05.12 |
---|---|
[Baekjoon] 백준 1654 랜선 자르기 Python (0) | 2024.05.12 |
[Baekjoon] 백준 1920 수 찾기 Python (0) | 2024.05.11 |
[Baekjoon] 백준 10451 순열 사이클 Python (0) | 2024.05.10 |
[Baekjoon] 백준 11724 연결 요소의 개수 Python (0) | 2024.05.04 |