알고리즘

<백준> 2805번 파이썬 알고리즘

changha. 2021. 7. 9. 14:50
n ,m = map(int, input().split())
l = list(map(int, input().split()))

start, end = 1, max(l)
ans = 0 
while start <= end:
    mid = (start+end)// 2

    log = 0

    for i in l:
        if i >= mid:
            log += i - mid 

    if log >= m:
        ans = mid  
        start = mid + 1
    else:
        end = mid - 1
print(ans)

이분탐색을 이용하여 푸는 문제였다 

아직 미숙해서 print(end)보다는 ans 로 따로 값에 대한 변수를 정해놓는게 

더 직관적인것 같다