개발자가 내팔자

[BOJ] 백준 1654 랜선 자르기 Python 본문

Algorithms

[BOJ] 백준 1654 랜선 자르기 Python

야생의 개발자 2022. 5. 30. 10:05

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

 

1654번: 랜선 자르기

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

www.acmicpc.net

import sys

K, N = map(int, sys.stdin.readline().split())

lans = [int(sys.stdin.readline().strip()) for _ in range(K)]

start, end = 1, max(lans)

while start <= end:
    mid = (start + end) // 2
    cnt = 0
    for lan in lans:
        cnt += lan // mid

    if cnt >= N:
        start = mid + 1
    else:
        end = mid - 1

print(end)

이분 탐색을 몰라서 접근 방법에 대해 꽤 삽질을 했었다.

이론이 중요한 이유를 깨닫게 되었다.

 

Comments