For Programmer

백준 1654번 파이썬 문제풀이(랜선 자르기) - 이분탐색 본문

코팅테스트/백준 문제 모음

백준 1654번 파이썬 문제풀이(랜선 자르기) - 이분탐색

유지광이 2022. 3. 30. 21:29
728x90


간단한 이분탐색 문제이다. 랜선의 크기를 절반씩 줄여나가면서 검사하면 된다. (K의 무수하게 크다면 우선 생각을 해봐야 하는 것이 이분탐색이다. 또한 N도 10000이기에 N^2으로 돌수가 없다. )

 

import sys

input = sys.stdin.readline

K, N = map(int, input().split())
len = []
for _ in range(K):
    len.append(int(input()))

s = 1
e = max(len)


def check(mid):
    total = 0
    for i in len:
        total += (i // mid)

    return total >= N


ans = 0
while s <= e:

    mid = (s + e) // 2
    if check(mid):
        ans = mid
        s = mid + 1
    else:
        e = mid - 1

print(ans)
728x90
Comments