문제 링크 : www.acmicpc.net/problem/1026
내 풀이(2021.1.14) :
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int main() {
ios_base::sync_with_stdio(false);
cin.tie(NULL);
cout.tie(NULL);
int N; cin >> N;
vector<int> A, B;
for (int i = 0; i < N; i++) {
int temp; cin >> temp;
A.push_back(temp);
}
for (int i = 0; i < N; i++) {
int temp; cin >> temp;
B.push_back(temp);
}
sort(A.begin(), A.end(), less<int>());
sort(B.begin(), B.end(), greater<int>());
int total = 0;
for (int i = 0; i < N; i++) {
total += A[i] * B[i];
}
cout << total;
return 0;
}
priority queue 초기화 매개변수의 compare 함수 less<int>()와 greater<int>()를 사용했던 것이 떠올랐다.
sort()도 마찬가지로 less<int>()가 default 함수로 오름차순이고,
greater<int>()가 내림차순이었다.