728x90
programmers.co.kr/learn/courses/30/lessons/42626
STL 의 우선순위큐를 최소힙으로 만들면 풀리는 문제다
- c++
#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;
for (int i = 0; i < scoville.size(); ++i) pq.push(scoville[i]);
while(!pq.empty()) {
if (pq.top() >= K) break;
if (pq.size() < 2) break;
int first = pq.top();
pq.pop();
int second = pq.top();
pq.pop();
pq.push(first + 2 * second);
answer++;
}
while(!pq.empty()) {
if (pq.top() < K) answer = -1;
break;
}
return answer;
}
|
cs |
728x90
'PS' 카테고리의 다른 글
프로그래머스 - 가장 큰 수 (0) | 2020.11.24 |
---|---|
프로그래머스 - 이중 우선순위 큐 (0) | 2020.11.23 |
SWEA 2819 - 격자판의 숫자 이어 붙이기 (0) | 2020.11.21 |
SWEA 1206 - View (0) | 2020.11.21 |
프로그래머스 - 조이스틱 (0) | 2020.11.20 |