✍풀이 과정
✔ 스코빌 지수를 구할 때, 첫 번째 값은 항상 작은 값이어야 합니다. 따라서 priority_queue를 min heap으로 구현합니다.
(C++ STL에서 priority_queue는 max heap으로 구현되어 있습니다.)
✔ q.top( ) < K이고 pq.size( ) > 1일 때까지 반복합니다.
✔ priority_queue에서 첫 번째 값, 두 번째 값을 꺼내고, queue에서는 값을 지워줍니다.
그리고 첫 번째 값, 두 번째 값으로 계산한 새로운 스코빌 지수를 priority_queue에 push합니다.
✔ q.top( ) < K일 때까지 반복되므로 push할 때마다 섞은 횟수를 ++합니다.
✔ 반복 후에도 pq값이 K보다 작다면 -1 return합니다.
🌱 정답코드
'OLD_알고리즘 > Programmers - 알고리즘' 카테고리의 다른 글
Programmers ] Lv.2 올바른 괄호 (0) | 2021.05.21 |
---|---|
Programmers ] Lv.2 피보나치수 (0) | 2021.05.21 |
Programmers ] Level 2 - 전화번호 목록 (0) | 2021.03.06 |
Programmers ] Level 2 - 가장 큰 수 (0) | 2021.03.04 |
Programmers ] Level 1 - K번째 수 (0) | 2021.03.04 |
댓글