백준 문제 링크
랜선 자르기
- 랜선을 array에 받은 후 array를 정렬한다.
- 기본 이분 탐색 코드에서,
array의 원소를 mid로 나누었을 때의 몫을 cnt에 더해준다.- 조건은 다음과 같다.
- cnt가 필요한 랜선의 개수 K보다 작다면
end = mid - 1- 그 외에는 start = mid + 1 해준다.
- 마지막으로 end를 출력하면 끝!
N, K = map(int, input().split())
array = []
for _ in range(N):
array.append(int(input()))
array.sort()
start = 1
end = max(array)
while start <= end:
mid = (start + end) // 2
cnt = 0
for x in array:
cnt += x // mid
if cnt < K:
end = mid - 1
else:
start = mid + 1
print(end)