Programmers 42626 더 맵게
in Algorithm
문제 링크 : https://programmers.co.kr/learn/courses/30/lessons/42626
나의 풀이
우선 순위 큐를 사용하여 모든 음식의 스코빌 지수를 K이상으로 만든다.
풀이 코드 : 42626 더 맵게
#include <string>
#include <vector>
#include <queue>
using namespace std;
int solution(vector<int> scoville, int K) {
int answer = -1, count = 0;
priority_queue<int> pq;
for(int i=0;i<scoville.size();i++){
pq.push(-scoville[i]);
}
while(true){
int first = -pq.top();
if(first >= K) {
answer = count;
break;
}
else if(pq.size() < 2) break;
pq.pop();
int second = -pq.top();
pq.pop();
int new_num = first + second*2;
pq.push(-new_num);
count++;
}
return answer;
}