컴공생의 다이어리
[파이썬, Python] 백준 2512번 : 예산 본문
백준 2512번 : 예산
내 코드
import sys
input = sys.stdin.readline
n = int(input()) # 지방의 수
arr = list(map(int, input().split())) # 예산 요청
m = int(input()) # 총 예산
start, end = 0, max(arr)
while start <= end: # 이분탐색
mid = (start + end) // 2 # 상한액 설정
curr = 0
for i in arr:
if i >= mid: # 요청한 금액이 상한액 이상이라면
curr += mid # 상한액 더하기
else: # 상한액 미만이라면
curr += i # 요청한 금액 더하기
if curr <= m: # 예산 총액이 총 예산 이하라면
start = mid + 1
else: # 예산 총액이 총 예산을 초과한다면
end = mid - 1
print(end)
728x90
'Development > Algorithm & Coding Test' 카테고리의 다른 글
[프로그래머스] 있었는데요 없었습니다 - MySQL (0) | 2022.07.12 |
---|---|
[프로그래머스] 없어진 기록 찾기 - MySQL (0) | 2022.07.11 |
[파이썬, Python] 백준 2015번 : 수들의 합 4 (0) | 2022.07.08 |
[파이썬, Python] 백준 17352번 : 여러분의 다리가 되어 드리겠습니다! (0) | 2022.07.07 |
[파이썬, Python] 백준 1654번 : 랜선 자르기 (0) | 2022.07.06 |
Comments