반응형

 

 

 

 

풀이 코드

#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

+ Recent posts