[python 파이썬] 백준 3079번 입국심사

2021. 1. 29. 02:08Algorithm/BOJ

반응형

www.acmicpc.net/problem/3079

 

3079번: 입국심사

첫째 줄에 N과 M이 주어진다. (1 ≤ N ≤ 100,000, 1 ≤ M ≤ 1,000,000,000) 다음 N개 줄에는 각 심사대에서 심사를 하는데 걸리는 시간인 Tk가 주어진다. (1 ≤ Tk ≤ 109)

www.acmicpc.net

이 문제는 이분탐색 문제이다. 이분탐색 공부를 좀 하면서 더 익혀보자

 

import sys

n, m = map(int, sys.stdin.readline().split())
t = [int(sys.stdin.readline()) for _ in range(n)]

left = min(t)
answer = right = max(t) * m

while left <= right:
    total = 0
    mid = (left + right) // 2
    for i in range(n):
        total += mid // t[i]
    if total >= m:
        right = mid - 1
        answer = min(answer, mid)
    else:
        left = mid + 1
print(answer)

 

<참고>

data-bank.tistory.com/26

반응형