백준 2512.예산


백준 2512.예산

import sys from collections import Counter input = sys.stdin.readline n = int(input()) array = list(map(int,input().split())) m = int(input()) start = 0 end = max(array) while start <=end: mid = (start + end ) // 2 total = 0 for i in array: if i > mid: total = total + mid else: total = total + i if total <= m: start = mid + 1 else: end = mid - 1 print(end) #print(min(start, mid, end)) 마지막에 print(mid) 주고있어서 계속 틀렸다 ...... 왜 end값을 줘야되는지 모르겠는데 그냥 다뽑아서 최솟값 줘도 맞다고 뜨긴한다...



원문링크 : 백준 2512.예산