https://www.acmicpc.net/problem/2805
시간 1초, 메모리 256MB
input :
output :
import sys
n, m = map(int, sys.stdin.readline().split())
data = list(map(int, sys.stdin.readline().split()))
low = 1
high = max(data)
while low <= high:
mid = (low + high) // 2
dis = 0
for item in data:
if item - mid > 0:
dis += item - mid
if dis >= m:
low = mid + 1
else:
high = mid - 1
print(high)
low랑 high랑 헷갈리면
if dis >= m:
low = mid + 1
ret = mid
else:
high = mid - 1
해서 ret 출력하는 것도 나쁘진 않을듯? 물론 변수를 하나 더 써야 하지만..