C++:: 프로그래머스 <더 맵게>

jahlee·2023년 4월 3일
0

프로그래머스_Lv.2

목록 보기
25/106
post-thumbnail

우선순위 큐를 알고있다면 쉽게 풀 수 있는 문제이다.

우선 순위 큐 사용 예시

#include <queue>
using namespace std;

int main(void)
{
	priority_queue<int> pq;// 큰 값이 우선적으로 top에 있다.
    priority_queue<int, vector<int>, greater<int>> pq;// 작은 값이 우선적으로 top에 있다.
}
#include <string>
#include <vector>
#include <queue>
using namespace std;

int solution(vector<int> scoville, int K)
{
    priority_queue<int, vector<int>, greater<int>> pq;
    int answer = 0;
    for(auto c : scoville) pq.push(c);
    while (pq.top() < K && pq.size() > 1)
    {
        int a,b;
        a = pq.top(); pq.pop();//가장 안매운
        b = pq.top(); pq.pop();//그 다음
        pq.push(a + b*2);
        answer++;
    }
    if (pq.top() < K) answer = -1;// 더 섞을 수 없는데 안매운게 존재한다면
    return answer;
}

0개의 댓글