[백준 16401 파이썬] 과자 나눠주기

일단 해볼게·2023년 4월 29일
0

백준

목록 보기
119/132

https://www.acmicpc.net/problem/16401

import sys
input = sys.stdin.readline

m, n  = map(int,input().split())
snacks = list(map(int, input().split()))
start = 1 # 과자의 길이는 1 이상
end = max(snacks)
answer = 0

while start <= end:
    mid = (start + end) // 2
    c = 0 # 길이가 mid인 것을 만들 수 있는 개수
    
    for snack in snacks:
        c += snack // mid

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

print(answer)

과자 리스트에서 길이가 mid인 것을 만들 수 있는 개수를 구하고 m과 비교한다.

profile
시도하고 More Do하는 백엔드 개발자입니다.

0개의 댓글