백준 2512번 예산

DARTZ·2022년 5월 13일
0

알고리즘

목록 보기
56/135
import sys
sys.stdin = open('input.txt', 'rt')
input = sys.stdin.readline

N = int(input())

request = list(map(int, input().split()))

budget = int(input())

start = 0
end = max(request)
answer = 0

while start <= end:
    middle = (start+end) // # 2 이분 탐색 시작
    res = 0

    res = sum([middle if r > middle else r for r in request]) # 제한 예산 보다 낮을 경우 유지, 높을 경우 middle로 변경

    if res <= budget: # 더한 값이 res보다 budget이 같거나 높을 경우 제한을 높여줘야하므로 start를 높인다
        answer = middle
        start = middle + 1

    else: # 아니라면 제한을 낮춰준다.
        end = middle - 1

print(answer)
profile
사람들이 비용을 지불하고 사용할 만큼 가치를 주는 서비스를 만들고 싶습니다.

0개의 댓글