JiSoo's Devlog
[백준 / 파이썬] 1654번 랜선 자르기 본문
k, n = map(int, input().split())
a=[]
for i in range(k):
a.append(int(input()))
start = 1
end = max(a)
while(start <= end):
mid = (start + end) // 2
c = 0
for i in range(k):
c += a[i] // mid
if c >= n:
start = mid + 1
else:
end = mid - 1
print(end)
길이 범위를 1부터 가장 긴 랜선 길이까지
잘라진 랜선의 개수가 n보다 많으면 mid보다 더 큰 수들만 다시 확인하면 되기 때문에 mid+1
최대 랜선 길이를 구해야 하기 때문에 필요한 랜선 개수보다 작아지는 순간 mid -1
728x90
'코테준비' 카테고리의 다른 글
[백준 / 파이썬] 18111번 마인크래프트 (1) | 2024.01.14 |
---|---|
[백준 / 파이썬] 15829번 Hashing (0) | 2024.01.14 |
[백준 / 파이썬] 1966번 프린터 큐 (1) | 2024.01.14 |
[백준 / 파이썬] 18110번 solved.ac (1) | 2024.01.14 |
[백준 / 파이썬] 1874번 스택 수열 (0) | 2024.01.14 |