728x90
https://www.acmicpc.net/problem/1654
k, n = map(int, input().split())
lines = []
for i in range(k):
lines.append(int(input()))
start = 1
end = max(lines)
while start <= end:
count = 0
mid = (start+end)//2
for i in lines:
count += i//mid
if count < n: # 자르는 길이를 줄여야 한다
end = mid-1
else: # 같거나 더 많음 -> 랜선 길이를 늘려도 된다
start = mid+1
print(end)
728x90
'Algorithm (PS)' 카테고리의 다른 글
[백준] 15666번: N과 M (12) Python - 조합,구현 (0) | 2023.01.01 |
---|---|
[백준] 17779 게리맨더링2 - Python - 구현 (0) | 2022.12.31 |
[백준] 2805번: 나무자르기 Python - 이진탐색 (0) | 2022.12.31 |
[백준] 20364번 : 부동산 다툼 (Python) -이진트리 (0) | 2022.12.29 |
[프로그래머스] 순위 검색 Python3 (0) | 2022.12.27 |