int solution(vector<int> scoville, int K) {
int answer = 0;
// 힙에 다 넣는다
// 힙에서 빼낸게 K 이상일 때까지 돌린다
// 두 개 섞고 다시 넣는다
priority_queue<int, vector<int>, greater<int>> pq;
for(int s : scoville) pq.push(s);
while(pq.top() < K && pq.size() > 1)
{
int e1 = pq.top(); pq.pop();
int e2 = pq.top(); pq.pop();
int ne = e1 + 2 * e2;
pq.push(ne);
answer++;
}
if(pq.top() < K) return -1;
return answer;
}