Level 2. 더 맵게
최소 힙을 유지하는 우선순위 큐를 활용해 작은 수부터 뽑아내 해결했다.
K보다 작은 지수가 마지막 1개 남았으면 성공할 수 없다는 뜻이다.
#include <iostream>
#include <vector>
#include <queue>
using namespace std;
int solution(vector<int> scoville, int K)
{
int answer = 0;
priority_queue<int, vector<int>, greater<int>> prQue(scoville.begin(), scoville.end());
while (prQue.top() < K)
{
if (prQue.size() == 1)
return -1;
int smallest = prQue.top(); prQue.pop();
int second = prQue.top(); prQue.pop();
prQue.emplace(smallest + second + second);
++answer;
}
return answer;
}
'자료구조 & 알고리즘 > 프로그래머스' 카테고리의 다른 글
Level 2. 전화번호 목록 (0) | 2023.04.11 |
---|---|
Level 2. 위장 (0) | 2023.04.10 |
Level 2. 기능개발 (0) | 2023.04.08 |
Level 2. 타겟 넘버 (0) | 2023.04.07 |
Level 2. 스킬트리 (0) | 2023.04.06 |