문제
https://www.acmicpc.net/problem/2512
코드
n=int(input())
arr=list(map(int, input().split()))
m=int(input())
start=0
end=1000000001
answer=0;
sum=0
for i in arr:
sum+=i
if sum<=m:
print(max(arr))
exit(0)
while start<=end:
mid=(start+end)//2
temp=0
for i in arr:
temp+=min(mid, i)
if temp<=m:
start=mid+1
answer = mid
else:
end=mid-1
print(answer)
'문제풀이 > 이진탐색' 카테고리의 다른 글
[JAVA] [이진탐색] 백준 3020 개똥벌레 (0) | 2023.07.21 |
---|---|
[파이썬] [이진탐색] 백준 1253 좋다 (0) | 2023.02.20 |
[파이썬] [이진탐색] 백준 1300 K번째 수 (0) | 2022.03.02 |
[파이썬] [이진탐색] Pro 징검다리 (0) | 2022.02.19 |
* [파이썬] [이진탐색] 백준 8983 사냥꾼 (0) | 2022.01.23 |