본문 바로가기

알고리즘

백준)랜선 자르기

 

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

 

 

 

 

a,b = map(int,input().split())


arr = []
for i in range(a):
  z = int(input())
  arr.append(z)



start,end = 1,max(arr)

while start<= end:
  mid = (start + end) // 2

  sums = 0
  for i in arr:
    if i >= mid:
      sums = sums + (i // mid)
  if b > sums:
    end = mid - 1
  else:
    start = mid + 1  

print(end)

 

이분법을 조금 넓게 수행해야하는 문제이다.

 

'알고리즘' 카테고리의 다른 글

백준)부녀회장이 될테야  (0) 2023.02.23
*백준)공유기 설치  (0) 2023.02.22
백준) 나이트의 이동  (0) 2023.02.21
백준) 나이트의 이동  (0) 2023.02.21
백준) 숫자판 점프  (0) 2023.02.21