PS/백준

[Python] 2792번 보석 상자

s_omi 2024. 8. 7. 09:08

✏️ 문제

 

문제 파악

 

 

알고리즘

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

 

 

코드

import sys
input = sys.stdin.readline

n, m = map(int, input().split())
colors = [int(input()) for _ in range(m)]

start, end = 1, max(colors)
result = end
while start <= end:
  mid = (start + end) // 2
  cnt = 0

  for color in colors:
    if color <= mid:
      cnt += 1
      continue
    
    if color % mid == 0:
      cnt += color // mid
    else:
      cnt += color // mid + 1

  if cnt > n: 
    start = mid + 1
  else:
    end = mid - 1
    result = min(result, mid)

print(result)

 

 

 

 

 

 

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

[Python] 2606번 바이러스  (0) 2024.08.09
[Python] 2178번 미로 탐색  (0) 2024.08.09
[Python] 15810번 풍선 공장  (0) 2024.08.05
[Python] 11663번 선분 위의 점  (0) 2024.08.05
[Python] 2428번 표절  (0) 2024.08.05