본문 바로가기
백준

[백준] 1654번 파이썬 (랜선 자르기)

by 헤이즐넛 좋아하는 개발자 2024. 2. 18.

문제를 읽고 오래 생각하다 보면 결국 최적의 값을 탐색해야 하는 문제임을 알 수 있다. 이진 탐색 방법을 사용하자.

import sys
input = sys.stdin.readline

k, n = map(int, input().split())

lst = [int(input().rstrip()) for _ in range(k)]
l, r = 1, max(lst)

while (l <= r):
    m = (l + r) // 2
    cnt = 0
    for i in lst:
        cnt += (i // m)
    if cnt >= n:
        l = m + 1
    else:
        r = m - 1

print(r)