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;
}