알고리즘 공부/백준
(Python)백준 코딩테스트 연습 - 랜선 자르기(1654)
HRuler
2023. 4. 26. 13:23
1. 문제
https://www.acmicpc.net/problem/1654
1654번: 랜선 자르기
첫째 줄에는 오영식이 이미 가지고 있는 랜선의 개수 K, 그리고 필요한 랜선의 개수 N이 입력된다. K는 1이상 10,000이하의 정수이고, N은 1이상 1,000,000이하의 정수이다. 그리고 항상 K ≦ N 이다. 그
www.acmicpc.net
2. 풀이
import sys
input = sys.stdin.readline
# k : 가지고 있는 랜선의 수
# n : 필용한 랜선의 수
k, n = map(int, input().split())
# kList : 가지고 있는 랜선의 길이 리스트
kList = [int(input()) for i in range(k)]
low, high = 1, max(kList) + 1
while True:
lineCnt = 0
midNum = (low + high) // 2
for i in kList:
lineCnt += i // midNum
if lineCnt >= n:
low = midNum
else:
high = midNum
if high - low == 1:
break
print(low)