Algorithm (PS)

[백준] 1654번 랜선자르기 Python - 이진탐색

minjiwoo 2022. 12. 31. 13:20
728x90

https://www.acmicpc.net/problem/1654

 

1654번: 랜선 자르기

첫째 줄에는 오영식이 이미 가지고 있는 랜선의 개수 K, 그리고 필요한 랜선의 개수 N이 입력된다. K는 1이상 10,000이하의 정수이고, N은 1이상 1,000,000이하의 정수이다. 그리고 항상 K ≦ N 이다. 그

www.acmicpc.net

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

start = 1
end = max(lines)
while start <= end:
    count = 0
    mid = (start+end)//2
    for i in lines:
        count += i//mid
    if count < n: # 자르는 길이를 줄여야 한다
        end = mid-1
    else: # 같거나 더 많음 -> 랜선 길이를 늘려도 된다
        start = mid+1

print(end)


728x90