Programmers 12941 최솟값 만들기

로고 이미지

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

나의 풀이

A,B의 원소가 자연수이기 떄문에 A의 최댓값과 B의 최솟값을 곱하여 더해야 최솟값이 된다.

풀이 코드 : 12941 최솟값 만들기

#include <iostream>
#include <vector>
#include <queue>
using namespace std;

int solution(vector<int> A, vector<int> B)
{
    int answer = 0;
    priority_queue<int> A_pq, B_pq;
    for(int i=0;i<A.size();i++){
        A_pq.push(-A[i]);
        B_pq.push(B[i]);
    }
    while(!A_pq.empty()){
        answer += B_pq.top() * (-A_pq.top());
        B_pq.pop();
        A_pq.pop();
    }
    
    return answer;
}

채점결과

42586


© 2020. All rights reserved.

Powered by Hydejack v8.4.0