PS/백준

[Python] 16401번 과자 나눠주기

s_omi 2024. 8. 17. 09:45

✏️ 문제


문제 파악

자른 길이는 다른 막대에 붙이거나 연결해서 쓸 수 없기 때문에 버린다고 가정하고 코드를 짜야한다.

 

알고리즘

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

 

 

코드

import sys
input = sys.stdin.readline

m,n = map(int, input().split())
snacks = list(map(int, input().split()))
length = 0

start, end = 1, max(snacks)
while start <= end:
  mid = (start+end) // 2
  get = 0

  for snack in snacks: 
    get += snack // mid

  if get >= m:
    length = max(length, mid)
    start = mid + 1
  else:
    end = mid - 1

print(length)