취준생의 코딩테스트 연습기

[백준] 1654번 랜선 자르기 / 파이썬(python) 본문

코딩테스트/백준

[백준] 1654번 랜선 자르기 / 파이썬(python)

Jiwon_C 2021. 5. 25. 16:03

# 문제 링크

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

 

1654번: 랜선 자르기

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

www.acmicpc.net

# Soultion

이진탐색을 이용하여 문제해결

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
k,n= map(int, input().split())
line = []
for _ in range(k):
    line.append(int(input()))
start = 1
end = max(line)
 
while(start<=end):
    mid = (start+end)//2
    cnt = 0
    for i in line:
        cnt += i//mid
    if cnt>=n: #자른 개수가 많으면 -> 더 크게잘라야함
        start = mid+1
    else:
        end = mid-1
print(end)
cs

 

 

 

Comments