https://programmers.co.kr/learn/courses/30/lessons/42626
int solution(vector<int> scoville, int K) {
int answer = 0;
priority_queue<int, std::vector<int>, std::greater<int>> pq;
for (int i = 0; i < scoville.size(); i++) {
pq.push(scoville[i]);
}
while (1)
{
int lowestHot = pq.top();
if (lowestHot >= K) return answer;
pq.pop();
if (!pq.empty()) {
answer++;
int secondHot = pq.top();
pq.pop();
pq.push(lowestHot + (secondHot * 2));
}
else {
if (lowestHot < K) {
return -1;
}
else {
break;
}
}
}
return answer;
}