Python/이분탐색

99클럽 코테 스터디 2일차 TIL + 백준 1654 랜선 자르기 (파이썬)

유일리 2025. 1. 14. 14:18

※ 1654 랜선 자르기

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

문제 해결 TIP

처음에 반복문으로 max(랜선길이)까지 탐색하다가 시간 초과 이슈 발생..이분 탐색으로 바꿨더니 성공했다.

 

전체 코드

K, N = map(int,input().split())
length = []
for i in range(K):
    length.append(int(input()))

start = 1
end = max(length)

while start <= end:
    mid = (start+end)//2
    count = 0
    for i in length:
        count += i//mid
    if count >= N:
        start = mid + 1
    else:
        end = mid - 1
print(end)