[백준 1654] 랜선 자르기

김태민·2026년 4월 21일

코딩테스트

목록 보기
1/6

최종 코드

k, n = map(int, input().split())

line = []
for _ in range(k):
  line.append(int(input()))

start = 1
end = max(line)
answer = 0

while(start <= end):
  mid = (start + end) // 2
  count = 0
  for i in range(k):
    count += line[i] // mid

  if(count >= n):
    answer = mid
    start = mid + 1
  else:
    end = mid - 1

print(answer)

이전 문제인 백준 11561 문제를 풀어서 꽤 수월하게 풀었다. 해결과정이 많이 비슷하다!

https://velog.io/@rlaxoals132/%EB%B0%B1%EC%A4%80-11561-%EC%A7%95%EA%B2%80%EB%8B%A4%EB%A6%AC

마찬가지로 시작점과 끝점을 잡고, 중간 지점을 옮겨가며 이분탐색을 진행하여 해결했다.

profile
빠르게 성장하는 개발자

0개의 댓글