[Silver II] Title: 풍선 공장, Time: 3976 ms, Memory: 132864 KB -BaekjoonHub
This commit is contained in:
40
백준/Silver/15810. 풍선 공장/README.md
Normal file
40
백준/Silver/15810. 풍선 공장/README.md
Normal file
@@ -0,0 +1,40 @@
|
||||
# [Silver II] 풍선 공장 - 15810
|
||||
|
||||
[문제 링크](https://www.acmicpc.net/problem/15810)
|
||||
|
||||
### 성능 요약
|
||||
|
||||
메모리: 132864 KB, 시간: 3976 ms
|
||||
|
||||
### 분류
|
||||
|
||||
이분 탐색, 매개 변수 탐색
|
||||
|
||||
### 제출 일자
|
||||
|
||||
2025년 3월 6일 19:16:56
|
||||
|
||||
### 문제 설명
|
||||
|
||||
<p>전북대학교 프로그래밍 경진 대회에서는 ACM-ICPC 스타일을 따라 문제를 해결한 팀에게 그 문제에 해당하는 풍선을 달아준다.</p>
|
||||
|
||||
<p>풍선을 담당하는 N명의 스태프가 있다. 스태프마다 폐활량이 다르기 때문에 하나의 풍선을 만드는 데 걸리는 시간은 다양하다.</p>
|
||||
|
||||
<p>대회가 시작되고 운영진으로부터 M개의 풍선을 만들어 달라는 의뢰가 들어왔다!</p>
|
||||
|
||||
<p>각 스태프가 풍선 하나를 만드는 시간(분) A<sub>i</sub>를 알고 있을 때, 풍선 M개를 만들기 위해서 최소 몇 분이 걸릴까?</p>
|
||||
|
||||
<p>풍선을 만든 후에 문제를 표시할 것이기 때문에 풍선의 종류는 상관이 없다.</p>
|
||||
|
||||
<p>모든 스태프는 풍선을 만드는 데에 정확하게 자신이 말한 시간만큼 걸린다. 예를 들어 스태프 A가 풍선 하나를 만드는 데 5분이 걸린다면, 0분에 만들기 시작해서 5분에 끝난다.</p>
|
||||
|
||||
### 입력
|
||||
|
||||
<p>스태프의 수 N과 풍선의 개수 M이 입력된다. (1 ≤ N, M ≤ 1 000 000)</p>
|
||||
|
||||
<p>다음 줄에 N명의 각 스태프들이 풍선 하나를 만드는 데 걸리는 시간 A<sub>i</sub>가 순서대로 주어진다. A<sub>i</sub>는 1 000 000 이하의 자연수이다.</p>
|
||||
|
||||
### 출력
|
||||
|
||||
<p>M개의 풍선이 다 만들어지는 최소 시간을 출력한다.</p>
|
||||
|
||||
23
백준/Silver/15810. 풍선 공장/풍선 공장.py
Normal file
23
백준/Silver/15810. 풍선 공장/풍선 공장.py
Normal file
@@ -0,0 +1,23 @@
|
||||
import sys
|
||||
|
||||
input = sys.stdin.readline
|
||||
|
||||
N, M = map(int, input().split())
|
||||
|
||||
a = list(map(int, input().split()))
|
||||
|
||||
low, high = 0, max(a)*M
|
||||
result = high
|
||||
while low<=high:
|
||||
mid = (low+high)//2
|
||||
value = 0
|
||||
for time in a:
|
||||
value += (mid // time)
|
||||
|
||||
if value >= M:
|
||||
result = mid
|
||||
high = mid - 1
|
||||
else:
|
||||
low = mid + 1
|
||||
|
||||
print(result)
|
||||
Reference in New Issue
Block a user