본문 바로가기

하루하나코딩

백준 1654 : 랜선 자르기 python

코드

K, N = map(int, input().split())
line = []
plus = 0

for i in range(K):
    a = int(input())
    line.append(a)
    plus = plus + a

plus = int(plus / N)

start = 1
end = plus

while(start <= end):
    mid = (start+end) // 2
    cnt = 0
    for i in range(K):
        cnt += line[i] // mid
    if(cnt >= N):
        start = mid+1
    else:
        end = mid -1

print(end)

알게된 점

LG는 코테를.. c++을 지원을 안한다는 소문이 있다,,

그래서 바로 파이썬 공부를 시작했다.

이분탐색은 start와 end를 이용해서 범위를 구한다는 점에 주목을 해야할 것 같다.

원리는 알고 있었는데, 알고리즘 코드를 다시한번 기억해야겠다.

'하루하나코딩' 카테고리의 다른 글