백준(1654) - 랜선 자르기 Python
백준(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)
댓글남기기