백준, 입국심사, 3079, 파이썬
2024. 9. 6. 01:35ㆍETC/Algorithm
[유형]
이분탐색
[문제링크]
https://www.acmicpc.net/problem/3079
[요약]
첫째 줄에 상근이와 친구들이 심사를 마치는데 걸리는 시간의 최솟값을 출력한다.
[문제풀이]
end : M명이 입국 심사를 하는데 걸리는 최대 시간. T_K의 최댓값이 10^9이므로, 10^9*M으로 초기화한다.
mid: 임의의 입국 심사하는데 걸리는 시간.
cnt: mid 동안 입국심사할 수 있는 사람의 수
cnt>=M: 상근이와 친구들의 수보다 입국심사할 수 있는 사람의 수가 많다는 것으로, 임의의 입국심사하는데 걸리는 시간을 줄인다.
반대의 경우, 임의의 입국심사하는데 걸리는 시간을 늘린다.
import sys
from collections import Counter
def input():
return sys.stdin.readline().rstrip()
N, M = map(int, input().split())
times = [int(input()) for _ in range(N)]
start = 0
end = 1000000000 *N
while start <= end:
cnt = 0
mid = (start + end) // 2
for time in times:
cnt += mid//time
if cnt >= M:
end = mid-1
else:
start = mid+1
print(start)
'ETC > Algorithm' 카테고리의 다른 글
백준, 동전1, 2293, 파이썬 (0) | 2024.09.10 |
---|---|
백준, 동전 0, 11047, 파이썬 (0) | 2024.09.10 |
백준, 나무 자르기, 2805 (0) | 2024.09.06 |
백준, 숫자카드, 10815 (0) | 2024.09.06 |
백준, 1789, 수들의 합 (0) | 2024.09.06 |