티스토리 뷰

https://programmers.co.kr/learn/courses/30/lessons/42626

 

코딩테스트 연습 - 더 맵게

매운 것을 좋아하는 Leo는 모든 음식의 스코빌 지수를 K 이상으로 만들고 싶습니다. 모든 음식의 스코빌 지수를 K 이상으로 만들기 위해 Leo는 스코빌 지수가 가장 낮은 두 개의 음식을 아래와 같

programmers.co.kr

 

 

[프로그래머스][C++] 더 맵게

 

#include <string>
#include <vector>
#include <queue>

using namespace std;

int solution(vector<int> scoville, int K) {
	int answer = 0;
	priority_queue<int, vector<int>, greater<int>> pq;

	for (int i : scoville) {
		pq.push(i);
	}

	while (pq.top() < K) {
		int n1 = pq.top();
		pq.pop();

		if (pq.empty()) return -1;

		int n2 = pq.top();
		pq.pop();

		pq.push(n1 + n2 * 2);
		answer++;
	}

	return answer;
}
댓글