BOJ 13702 - 이상한 술집 (python)

rivermt·2023년 9월 3일
0

BOJ

목록 보기
18/18

문제


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

풀이

Paramatric Search (매개변수 탐색) 을 활용하여 풀었다.
적절한 용량을 찾기위해 mid를 조절해가며 조건의 만족여부에 따라 범위를 좁혀가며 해결한다. 범위를 좁힐 때 이분탐색으로 절반씩 탐색범위를 좁혀나가며 해결하면 된다.

CODE

import sys

input = sys.stdin.readline


def solve():
    n, k = map(int, input().split())
    capacity = []

    for i in range(n):
        capacity.append(int(input()))

    left = 0
    right = 2 ** 31 - 1

    while left <= right:
        mid = (left + right) // 2
        cnt = 0

        for i in range(n):
            cnt += capacity[i] // mid

        if cnt >= k:
            left = mid + 1

        else:
            right = mid - 1

    return right


print(solve())
profile
화이팅!!

0개의 댓글