우선순위 큐를 생각하자,,
우선운위큐의 존재만 안다면 쉽게 풀 수 있는 문제였다.
vector로 풀었더니 효율성 test를 아예 통과하지 못한다.
우선순위큐 사용 방법 다시 생각하기
#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=0;i<scoville.size();i++)
pq.push(scoville[i]);
while(pq.top()<K && pq.size()>1){
answer++;
int first = pq.top(); pq.pop();
int second = pq.top(); pq.pop();
pq.push(first+second*2);
}
if(pq.size()==1){
if(pq.top()<K)
return -1;
}
return answer;
}
'문제풀이 > 프로그래머스' 카테고리의 다른 글
[프로그래머스 문제풀이] 양과늑대 문제풀이 (0) | 2022.08.16 |
---|---|
[프로그래머스 문제풀이] 배달 문제풀이 (0) | 2021.09.06 |
[프로그래머스] 다음 큰 숫자 문제풀이 (0) | 2021.06.14 |
[C++]2020 KAKAO BLIND RECRUITMENT 2번문제 (0) | 2021.03.28 |
[C++]2020 KAKAO BLIND RECRUITMENT 1번문제 (0) | 2021.03.25 |