💡문제접근
- 이미 가지고 있는 랜선의 개수 K의 범위는 1 ≤ K ≤ 10,000이고 필요한 랜선의 개수 N의 범위는 1 ≤ N ≤ 1,000,000이다. 이전 포스팅에 있었던 [[백준] 2805번 나무 자르기]와 동일한 유형의 이분 탐색 문제다.
💡코드(메모리 : 30616KB, 시간 : 64ms)
import sys
input = sys.stdin.readline
def binary_search(target, data):
start = 1
end = max(data)
while True:
mid = (start + end) // 2
if start > end:
break
cnt = 0
for i in data:
cnt += (i // mid)
if cnt >= target:
start = mid + 1
else:
end = mid - 1
return mid
K, N = map(int, input().strip().split())
lan = []
for _ in range(K):
lan.append(int(input().strip()))
print(binary_search(N, lan))
💡소요시간 : 8m