정구리의 우주정복

[BOJ] 백준 1654번 - 랜선 자르기 파이썬 이분탐색 본문

ALGORITHM/SOLVE

[BOJ] 백준 1654번 - 랜선 자르기 파이썬 이분탐색

Jungry_ 2020. 9. 8. 00:11
반응형

www.acmicpc.net/problem/1654

 

1654번: 랜선 자르기

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

www.acmicpc.net

 


 

이분탐색을 이용한 풀이

#랜선 자르기

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

start = 1
end = max(array)

result = 0
while (start<= end):
    total = 0
    mid = (start+end) // 2
    for x in array:
        total += x//mid
    if total < m : #랜선이 필요량보다 적은 경우 (mid 를 작게 해서 잘게 잘라야함)
        end = mid -1
    else:
        result = mid
        start = mid + 1
print(result)
반응형
Comments