[백준] 1654번 랜선 자르기

거북이·2023년 1월 25일
0

백준[실버2]

목록 보기
13/81
post-thumbnail

💡문제접근

  • 이미 가지고 있는 랜선의 개수 K의 범위는 1 ≤ K ≤ 10,000이고 필요한 랜선의 개수 N의 범위는 1 ≤ N ≤ 1,000,000이다. 이전 포스팅에 있었던 [[백준] 2805번 나무 자르기]와 동일한 유형의 이분 탐색 문제다.

💡코드(메모리 : 30616KB, 시간 : 64ms)

import sys
input = sys.stdin.readline

def binary_search(target, data):
    start = 1
    end = max(data)
    while True:
        mid = (start + end) // 2
        if start > end:
            break
        cnt = 0
        for i in data:
            cnt += (i // mid)
        if cnt >= target:
            start = mid + 1
        else:
            end = mid - 1
    return mid


K, N = map(int, input().strip().split())
lan = []
for _ in range(K):
    lan.append(int(input().strip()))
print(binary_search(N, lan))

💡소요시간 : 8m

0개의 댓글