데이터 값이 너무 많아서 이진 탐색으로 풀어야했던 문제
최댓값인데 min으로 써서 오류가 났다.
n,m=map(int,input().split())
tree=list(map(int,input().split()))
def binary_search(array,target,start,end):
global answer
if start>end:
print(answer)
return
mid=(start+end)//2
sum=0
for x in tree:
if x-mid>0:
sum+=x-mid
if sum==target:
print(mid)
return
elif sum>target:
answer=max(answer,mid)
return binary_search(array,target,mid+1,end)
elif sum<target:
return binary_search(array,target,start,mid-1)
answer=0
binary_search(tree,m,0,max(tree))