반응형
문제 링크 : https://programmers.co.kr/learn/courses/30/lessons/42626
문제 풀이
주석으로 대체
코드
#include <bits/stdc++.h>
using namespace std;
int solution(vector<int> scoville, int K) {
int answer = 0;
priority_queue<int, vector<int>, greater<int> > pq;
//min heap 생성
for(int i=0; i<scoville.size(); i++){
pq.push(scoville[i]);
} //heap에 원소들을 삽입
while(pq.top() < K){ //모든 원소가 K 이상이 될 때까지
if(answer >= scoville.size() || pq.size() <= 1) return -1;
//모든 음식의 스코빌 지수를 K 이상으로 만들 수 없는 경우 return -1
int tmp = pq.top(); //가장 스코빌 지수가 낮은 음식에
pq.pop();
tmp += (pq.top() * 2); //2번째로 낮은 음식을 섞는다
pq.pop();
pq.push(tmp);//다시 heap에 넣고
answer++;//answer count 증가
}
return answer;
}
반응형
'Programming Solve > 프로그래머스' 카테고리의 다른 글
프로그래머스 - 이중우선순위큐 / C++ (0) | 2022.03.16 |
---|---|
프로그래머스 - 디스크 컨트롤러 / C++ (0) | 2022.03.15 |
프로그래머스 - 프린터 / C++ (0) | 2022.03.09 |
프로그래머스 - 등굣길 / C++ (0) | 2022.03.08 |
프로그래머스 - 짝지어 제거하기 / C++ (0) | 2022.03.06 |