코딩테스트 문제풀이/프로그래머스

[프로그래머스] 고득점 Kit 힙(Heap)

itaeiou 2022. 3. 16. 17:59
반응형

42626 더 맵게

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

 

코딩테스트 연습 - 더 맵게

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

programmers.co.kr

 

20220316 C++ 문제 풀이

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

using namespace std;

int solution(vector<int> scoville, int K) {
    int answer = 0;
    priority_queue <int, vector<int>, greater<int> > pq;
    
    for(int i=0; i<scoville.size(); i++) {
        pq.push(scoville[i]);
    }
    while(pq.top() < K) {
        if(pq.size() <= 1) return -1;
        int a = pq.top();
        pq.pop();
        int b = pq.top();
        pq.pop();
        
        pq.push(a + 2*b);
        answer++;
    }
    
    return answer;
}

우선순위 큐 사용 (Heap 구조)

include <queue>

priority_queue<int> pq;    // 선언 큰수가 top

반응형