쌓고 쌓다
[프로그래머스] 더 맵게 C++ 풀이 본문
https://school.programmers.co.kr/learn/courses/30/lessons/42626
전체 코드
#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.size()>1)
{
if(pq.top()>=K)
break;
int mix=0;
mix+=pq.top(); pq.pop();
mix+=pq.top()*2; pq.pop();
pq.push(mix);
answer++;
}
if(pq.top()<K)
answer=-1;
return answer;
}
우선순위 큐를 이용해 간단히 구현해서 풀면 되는 문제였습니다.
그냥 vector를 이용해 매번 정렬을하는 방식으로 푼다면 효율성에서 시간초과가 납니다.
'알고리즘 > 프로그래머스' 카테고리의 다른 글
[프로그래머스] 행렬 테두리 회전하기 C++ 풀이 (0) | 2022.07.20 |
---|---|
[프로그래머스] 짝지어 제거하기 C++ 풀이 (0) | 2022.07.18 |
[프로그래머스] 타겟 넘버 C++ 풀이 (0) | 2022.07.15 |
[프로그래머스] 기능개발 C++ 풀이 (0) | 2022.07.14 |
[프로그래머스] 124 나라의 숫자 C++ 풀이 (0) | 2022.07.14 |
Comments