https://www.acmicpc.net/problem/1654
import sys
k, n = map(int, input().split())
lan = [int(sys.stdin.readline()) for _ in range(k)]
start = 1
end = max(lan)
while start <= end:
mid = (start + end)//2
lan_num = 0
for l in lan:
lan_num += l//mid
if lan_num >= n:
start = mid + 1
else:
end = mid - 1
print(end)
가장 긴 랜선의 길이를 기준으로 이분탐색하여 주어진 조건의 길이를 찾는다.