현제의 현재이야기

[백준/python] 2512 - 예산 본문

algorithm

[백준/python] 2512 - 예산

현재의 현제 2022. 7. 20. 14:03

 

2512번: 예산

첫째 줄에는 지방의 수를 의미하는 정수 N이 주어진다. N은 3 이상 10,000 이하이다. 다음 줄에는 각 지방의 예산요청을 표현하는 N개의 정수가 빈칸을 사이에 두고 주어진다. 이 값들은 모두 1 이상

www.acmicpc.net

n = int(input())
state = list(map(int, input().split()))
money = int(input())

left = 0
right = max(state)

while right >= left:
    mid = (left + right) // 2
    answer = 0
    for budget in state:
        if budget > mid:
            answer += mid
        else:
            answer += budget

    if answer > money:
        right = mid - 1

    else:
        left = mid + 1 
print(right)

이진 탐색을 이용한 풀이. 도저히 로직이 떠오르지 않아 참고한 코드이다. 이진 탐색 문제를 더 풀어보아야겠다.

Comments