728x90
S의 값을 최소화하기 위해서는, A 배열에서 가장 큰 값과 B 배열에서 가장 작은 값을 곱해주어야 최소화 할 수 있다.
따라서, A 배열은 오름차순, B 배열은 내림차순으로 바꾸어 서로 곱하면 된다.
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int cmp(int x, int y) {
return x > y;
}
int main() {
int n, k;
cin >> n;
int a[51], b[51];
for (int i = 0; i < n; i++) {
cin >> a[i];
}
for (int i = 0; i < n; i++) {
cin >> b[i];
}
sort(a, a+n);
sort(b, b+n, cmp);
int ans = 0;
for (int i = 0; i < n; i++) {
ans += (a[i] * b[i]);
}
cout << ans;
}
처음에는 sort(b, b+n, greater<>()) 으로 했는데 컴파일 에러가 떴다. 무슨 문제인지 알아봐야 겠다...
728x90
'PS > BOJ' 카테고리의 다른 글
[C++] 백준 13305 : 주유소 (0) | 2024.02.21 |
---|---|
[C++] 백준 1541 : 잃어버린 괄호 (0) | 2024.02.21 |
[C++] 백준 11047 : 동전 0 (0) | 2024.02.19 |
[C++] 백준 1463 : 1로 만들기 (0) | 2024.02.18 |
[C] 백준 1316 : 그룹 단어 체커 (0) | 2022.09.16 |