[백준/파이썬] 2512번

민정·2023년 2월 28일
0

[백준/파이썬]

목록 보기
101/245
post-thumbnail

백준 2512번

문제

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

코드

num = int(input())

budget = list(map(int, input().split()))
sum_budget = int(input())

start = 1
end = max(budget)

while start <= end :

    mid = (start + end) // 2
    temp = 0

    for i in budget:
        if mid < i :
            temp += mid
        else:
            temp += i
    if temp <= sum_budget :
        start = mid + 1
    else :
        end = mid - 1

print(end)

풀이

이분탐색을 이용하여 문제풀이를 해줍니다.
만약 현재의 값(i)이 mid 값보다 작다면 temp에 현재 값을 더해주고 반대의 상황이라면 mid 값을 더해줍니다.
총 예산보다 temp값이 작다면 start값을 변경, 크다면 end값을 변경해줍니다.

profile
パㅔバ6ㅇr 덤벼ㄹΓ :-0

0개의 댓글