1654 : 랜선자르기

서희찬·2022년 1월 27일
0

백준

목록 보기
100/105

문제

코드

k,n = map(int,input().split())
line = [] ; result = []

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

start = 1 ; end = max(line)

while start<=end:    
    total = 0
    mid =(start+end)//2 
    for x in line: 
            total += x//mid

    if total<n: #부족할때 
        end = mid - 1 
    else : #넘칠때 
        result.append(mid)
        start = mid + 1 
        
print(max(result))

해설

어우,, 쓸데 없이 헤멘 문제이다..
문제를 잘읽자,,,
n보다 많이 자를 수 있는 케이스도 포함이였는데ㅔ,,그거에서 계속 걸렸었다..
그래서 reuslt라는곳에 이분탐색을 진행하며 Mid를 붙여줘나가서 제일 최대값을 출력하게 했다.

profile
부족한 실력을 엉덩이 힘으로 채워나가는 개발자 서희찬입니다 :)

0개의 댓글