본문 바로가기
Beakjoon&프로그래머스/파이썬

[백준/파이썬] 13702번 파닭파닭

by 현장 2022. 5. 19.

-Code

import sys
input = sys.stdin.readline

s, c = map(int, input().split())
pa = [int(input()) for _ in range(s)]

start, end = 1, max(pa)
pa_result = 0
while start <= end:
    mid = (start + end) // 2
    cnt = sum(i // mid for i in pa)
    if cnt >= c:
        pa_result = max(pa_result, mid)
        start = mid + 1
    else:
        end = mid - 1
print(sum(pa) - pa_result * c)

최대 값이라는 부분과 start와 end의 범위때문에 시간이 조금 걸렸습니다. 더 많이 이분 탐색에 대해 풀어봐야 할 것같습니다.