[백준] 2512 : 예산

letsbebrave·2022년 4월 13일
0

codingtest

목록 보기
99/146
post-thumbnail

문제

https://www.acmicpc.net/problem/2512

cf.
유사 문제 : 히오스 프로그래머 https://velog.io/@letsbebrave/백준-16564-히오스-프로그래머

풀이

import sys

N = int(sys.stdin.readline())
b = sorted(list(map(int, sys.stdin.readline().split())))
m = int(sys.stdin.readline())

def bsearch(target):
    start = 0
    end = b[-1] # 상한액을 기준으로 함
    
    while start <= end:
        mid = (start + end) // 2 # 현재 상한액
        sum = 0
        for i in b:
            if i > mid:
                sum += mid
            else:
                sum += i
        
        if sum <= m:
            answer = mid
            start = mid + 1
        elif sum > m:
            end = mid - 1
            
    return answer

print(bsearch(m))
profile
그게, 할 수 있다고 믿어야 해

0개의 댓글