Programmers 68644 두 개 뽑아서 더하기

로고 이미지

문제 링크 : https://programmers.co.kr/learn/courses/30/lessons/68644

나의 풀이

최소우선순위 큐를 통해 작은순서대로 두 수의 합을 얻어내고, 중복되는 수는 제외함

풀이 코드 : 68644 두 개 뽑아서 더하기

#include <string>
#include <vector>
#include <queue>

using namespace std;

vector<int> solution(vector<int> numbers) {
    vector<int> answer;
    priority_queue<int> pq;
    int sum;
    for(int i=0;i<numbers.size();i++){
        for(int j=i+1;j<numbers.size();j++){
           sum = numbers[i] + numbers[j];
           pq.push(-sum);
        }
    }
    int num = -1;
    while(!pq.empty()){
        if(-pq.top() == num){
            pq.pop();
            continue;
        }
        num = -pq.top();
        pq.pop();
        answer.push_back(num);
    }
    return answer;
}

채점결과

42586


© 2020. All rights reserved.

Powered by Hydejack v8.4.0