백준 알고리즘/이진탐색

[백준 알고리즘] 2512번 예산 - Python

개발로 먹고 살자 2022. 3. 11. 10:18
from sys import stdin

n = int(stdin.readline())
n_list = sorted(map(int, stdin.readline().split()))
m = int(stdin.readline())

def binarySearch(n_list):
    start, end = 0, max(n_list)

    while(start <= end):
        mid = (start + end) // 2
        total = 0

        for i in n_list:
            if i > mid:
                total += mid
            else:
                total += i
        if total <= m:
            start = mid + 1
        else:
            end = mid - 1
    print(end)

if __name__ == "__main__":
    binarySearch(n_list)