[BOJ] 1026
보물
1026번 https://www.acmicpc.net/problem/1026
분류
-
Silver 4
- 수학
- 정렬
해법
첫 번째 배열은 오름차순으로,
두 번째 배열은 내림차순으로 정렬한 뒤
모두 곱해주면 됩니다.
정답 코드
#include <iostream>
#include <vector>
#include <algorithm>
#include <functional>
using namespace std;
int main(void)
{
int N;
int S = 0;
scanf(" %d", &N);
vector<int> v1;
vector<int> v2;
for (int i = 0; i < N; i++)
{
int num;
scanf(" %d", &num);
v1.push_back(num);
}
for (int i = 0; i < N; i++)
{
int num;
scanf(" %d", &num);
v2.push_back(num);
}
// sort v1 ascending order
sort(v1.begin(), v1.end());
// sort v2 descending order
sort(v2.begin(), v2.end(), greater<int>());
// multiply all values in the vector v1 and v2
for (int i = 0; i < N; i++)
S += (v1[i] * v2[i]);
printf("%d", S);
return 0;
}
Leave a comment