알고리즘 공부

[백준 15810번] 풍선 공장 - java

철매존 2022. 3. 26. 22:24
728x90

문제 설명

1. N명의 스태프, 만들어야 하는 풍선M이 주어진다.

2. 각 N명의 스태프가 1개의 풍선을 부는 데 들어가는 시간이 주어진다.

3. M개의 풍선을 만드는 최소시간을 구하라

 

풀이 과정

 1. 이분탐색이다.

 2. 이분탐색 -> Long타입에 주의하자...허헣 풀이방법 자체는 이전하고 별반 차이는 없다.

      - 몇 분의 시간이 주어지고, 해당 시간동안 몇개의 풍선을 불 수 있는지 구하면 된다.

 3. 왼쪽 -> 0으로 시작하면 된다.

 4. 오른쪽 -> 풍선 부는데 제일 오래걸린 시간 * 풍선 개수면 일단 가장 오래걸리는 시간이 구해진다.

 5. 만약 3, 5, 6분마다 한개씩 풍선을 만든다고 가정하면 7분이 주어지면 각각 2, 1, 1개를 만들것이다.

 6. 현재 시간에 분 최대 풍선개수가 원하는 개수보다 적으면 답이 아니다. 

 7. 일단 지금 원하는 것보다 많은 풍선을 불었으면 저장해주고, 더 빠른 시간을 구하러 떠난다.

 8. 이분탐색이 끝나면 정답을 return해준다.

코드

이분탐색은 참...주기적으로 하나씩 해줘야할것같다.

'알고리즘 공부' 카테고리의 다른 글

[백준 23352번] 방탈출 - java  (0) 2022.04.05
[백준 1461번] 도서관 - java  (0) 2022.03.29
[백준 2792번] 보석 상자- java  (0) 2022.03.26
[백준 2343번] 기타 - java  (0) 2022.03.26
[백준 4179번] 불! - java  (0) 2022.03.20