Algorithm

[백준][python]1654 랜선 자르기

soduddl1 2023. 4. 8. 06:46

문제

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

소스코드

import sys
input = sys.stdin.readline

if __name__ == "__main__":
    k,n = list(map(int,input().split()))
    arr = []
    res = 0 
    for _ in range(k):
        t = int(input())
        arr.append(t)
    
    r = 1
    l = max(arr)
    
    while r <= l :
        target = 0
        mid = (r+l) // 2

        for i in arr:
            target += i//mid
        
        if target >= n:
            r = mid  + 1
            res = max(res,mid)
        else:
            l = mid - 1
    print(res)

후기

r = 0 으로 하면 런타임 에러 (ZeroDivisionError) 에러가 발생함 !