코테 준비/이진탐색

1654. 랜선 자르기 (Python)

imsmile2000 2022. 12. 8. 20:25

랜선을 모두 N개의 같은 길이의 랜선으로 만들기 위해 K개의 랜선을 잘라서 만들어야 한다

import sys
k,n=map(int,sys.stdin.readline().split())
lan=[]
for i in range(k):
    lan.append(int(input()))
def binary(n,start,end):
    if start>end:
        print(end)
        return
    mid=(start+end)//2
    count=0
    for i in lan:
        max=i//mid
        count+=max
    if count<n:
        return binary(n,start,mid-1)
    else:
        return binary(n,mid+1,end)
binary(n,1,max(lan))