https://www.acmicpc.net/problem/2805
메모리 : 271608 KB
시간 : 548 ms
N, M = map(int, input().split())
tree=list(map(int, input().split()))
tree.sort()
left = 0
right = 0
for i in range(N):
if right < tree[i]:
right = tree[i]
while (left <= right):
mid = (left + right) // 2
cut = 0
for i in range(N):
if (tree[i] >= mid):
cut += tree[i] - mid
if cut >= M:
answer = mid
left = mid + 1
else:
right = mid - 1
print(answer)
📌 while( left <= right )으로 해야 됨!!!!!