[BOJ] 백준 2512 예산

태환·2024년 1월 29일
0

Coding Test

목록 보기
23/151

📌 [BOJ] 백준 2512 예산

📖 문제

📖 예제

📖 풀이

N = int(input())
array = list(map(int, input().split()))
M = int(input())

start = 1
end = max(array)

while start <= end:
  mid = (start + end) // 2
  total = 0
  for i in array:
    if mid >= i:
      total += i
    else:
      total += mid
  if total <= M:
    start = mid + 1
    result = mid
  else:
    end = mid - 1

print(result)

배정 예산의 최대값을 mid로 설정한 후 이진 탐색을 수행한다.
특정 예산으로 배정 예산의 최대값이 정해지고 그것을 통해 배정한 총 예산이 입력된 정해진 예산보다 작으면 그 때의 mid를 result로 출력한다.

profile
연세대학교 컴퓨터과학과 석사 과정

0개의 댓글