백준(1654) - 랜선 자르기 Python

최대 1 분 소요

백준(1654) - 랜선 자르기

문제풀이: 이분탐색, 파이썬

해결방법

예시)

# 입력 #
4 11
802
743
457
539

# 출력결과 #
200
  • 이진탐색 방법으로 푸는데 start = 1, end = sum(data) // n로 두는 것이 핵심이다.
import sys
input = sys.stdin.readline

k, n = map(int, input().split())
data = []
for _ in range(k):
    data.append(int(input()))


start = 1
end = sum(data) // n
while start <= end:
    mid = (start + end) // 2
    cnt = 0
    for d in data:
        cnt += d // mid
    if cnt >= n:
        start = mid + 1
    else:
        end = mid - 1
print(end)

댓글남기기