백준 알고리즘 (Baekjoon Algorithm)
[파이썬] 백준 알고리즘 No.2805 나무 자르기
Universe_lee
2023. 2. 17. 22:02
나의 코드
n, m = map(int, input().split())
data = sorted(list(map(int, input().split())))
def binary(arr, start, end):
if start > end:
return end
mid = (start + end) // 2
count = 0
for i in arr:
if mid < i:
count += (i - mid)
if count == m:
return mid
elif count < m:
return binary(arr, start, mid - 1)
else:
return binary(arr, mid + 1, end)
print(binary(data, 0, max(data)))
풀이 방법
이분탐색 랜선 자르기 문제와 유사한 문제