PS/백준

[Python] 2512번 예산

s_omi 2024. 7. 26. 10:09

✏️ 문제


문제 파악

이분 탐색으로 푸는 거의 대표적인 문제!! 

 

알고리즘

  • 매개 변수 탐색
  • 이분 탐색

 

 

코드

n = int(input())
req = sorted(list(map(int, input().split())))
m = int(input())

if (sum(req) <= m):
  print(max(req))
else:
  start, end = 1, max(req)
  
  while start <= end:
    mid = (start+end) // 2
    use = 0

    for i in range(n):
      if mid >= req[i]:
        use += req[i]
      else: 
        use += mid
    
    if use > m:
      end = mid - 1
    else:
      start = mid + 1

  print(end)

 

'PS > 백준' 카테고리의 다른 글

[Python] 17266번 어두운 굴다리  (0) 2024.07.30
[Python] 1654번 랜선 자르기  (0) 2024.07.26
[Python] 1072번 게임  (2) 2024.07.26
[Python] 2776번 암기왕  (0) 2024.07.26
[Python] 7795번 먹을 것인가 먹힐 것인가  (0) 2024.07.26