Stack/Coding test
[C++ / Lv2] 더 맵게
Seo_re:
2022. 3. 3. 22:51
반응형
풀이 코드
#include <string>
#include <vector>
#include <queue>
using namespace std;
#define FAIL -1
int solution(vector<int> scoville, int K) {
int answer = 0;
priority_queue<int, vector<int>, greater<int>> pq;
for(auto it : scoville)
{
pq.push(it);
}
while(pq.size() > 1 && pq.top() < K)
{
int less_1 = pq.top();
pq.pop();
int less_2 = pq.top();
pq.pop();
int mixScoville = less_1 + less_2 * 2;
answer++;
pq.push(mixScoville);
}
if(pq.top() < K)
{
answer = FAIL;
}
return answer;
}
기타
- 코드 작성은 쉬웠는데, 제발 테스트 케이스가 조금 많았으면 좋겠다 ㅠㅠ.. (1개는 너무한거 아닌가)
- C#에서는 우선순위 큐를 직접 구현해서 사용했었는데, C++에서는 그냥 제공되서 작성에 편했다.
- 다른 사람 풀이를 보니 아래와 같이 작성해서 for문 돌려서 값을 넣을 필요 없이 바로 값을 넣을 수 있었다.
priority_queue<int,vector<int>,greater<int>> pq (scoville.begin(),scoville.end());
반응형