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)
'백준 알고리즘 > 이진탐색' 카테고리의 다른 글
[백준 알고리즘] 10815번 숫자 카드 - Python (0) | 2022.03.10 |
---|---|
[백준 알고리즘] 10816번 숫자 카드 2 - Python (0) | 2022.03.10 |
[백준 알고리즘] 1920번 수 찾기 - Python (0) | 2022.03.09 |
[백준 알고리즘] 2805번 나무 자르기 - C (0) | 2021.12.08 |