반응형
풀이 코드
#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());
반응형
'Stack > Coding test' 카테고리의 다른 글
[C# / Lv2] JadenCase 문자열 만들기 (0) | 2022.10.07 |
---|---|
[C# / Lv2] 최댓값과 최솟값 (0) | 2022.10.07 |
[C# / Lv2] 주식 가격 (0) | 2022.02.26 |
[C++ / Lv 2] 다리를 지나는 트럭 (0) | 2022.02.26 |
[C++ / Lv2] 프린터 (0) | 2022.02.15 |