본문 바로가기
Algorithm/baekjoon

[파이썬]baekjoon 15810: 풍선 공장

by 갈잃자 2023. 2. 16.

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

 

15810번: 풍선 공장

1, 2, 3번 스태프가 각각 5분, 7분, 3분씩 걸린다면 3분이 지났을 때 3번 스태프가 1개, 5분에 1번 스태프가 1개, 6분에 3번 스태프가 1개를, 7분에 2번 스태프가 1개를, 9분에 3번 스태프가 1개를, 10분에

www.acmicpc.net


이진탐색 문제

 

걸리는 시간을 mid로 잡아 최소시간을 구하면 된다.

 

중간에 for문을 이용하여 몇개까지 만들어지는지 확인 한 후, 갯수가 많다면 시간을 줄이고, 갯수가 적다면 시간을 늘려서 결과값 도출! 

n,m = list(map(int,input().split()))
arr = list(map(int,input().split()))

st = 0
ed = max(arr) * m
result = 0
while st <= ed:
    mid = (st + ed)//2
    cnt = 0
    for i in range(len(arr)):
        cnt += mid // arr[i]
    if cnt >= m:
        ed = mid -1
        result = mid
    else:
        st = mid + 1
print(int(result))

댓글