현제의 현재이야기
[백준/python] 2512 - 예산 본문
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)
이진 탐색을 이용한 풀이. 도저히 로직이 떠오르지 않아 참고한 코드이다. 이진 탐색 문제를 더 풀어보아야겠다.
'algorithm' 카테고리의 다른 글
[백준/python] 14501 - 퇴사 (0) | 2022.09.05 |
---|---|
[코드트리/python] dx, dy 테크닉 (0) | 2022.07.26 |
[백준/python] 9205 - 맥주 마시면서 걸어가기 (0) | 2022.07.19 |
[백준/python] 13414 - 수강신청 (0) | 2022.07.16 |
[백준/python] 16206 - 롤케이크 (0) | 2022.07.07 |
Comments