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))
'Algorithm > baekjoon' 카테고리의 다른 글
[파이썬]baekjoon 3079: 입국심사 (1) | 2023.02.18 |
---|---|
[파이썬]baekjoon 2156: 포도주 시식 (0) | 2023.02.16 |
[파이썬]baekjoon 4446: ROT13 (0) | 2023.02.15 |
[파이썬]baekjoon 6137: 문자열 생성 (0) | 2023.02.15 |
[파이썬]baekjoon 3187: 양치기 꿍 (0) | 2023.02.13 |
댓글