반응형
1026_보물
링크
https://www.acmicpc.net/problem/1026
풀이
배열의 원소의 곱의 합의 최솟값을 구해야 합니다.
그렇다면 큰 수는 작은 수와 곱해서 더하는 방식으로 구현하면 됩니다.
B에 있는 수는 재배열이 안된다고 하지만, 최솟값을 구하는 문제이기 때문에 재배열을 해주도록 합시다.
A를 오름차순으로, B를 내림차순으로 정렬해준 뒤, 서로 곱하고 더하면 됩니다.
코드
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
//1026_보물 #include <cstdio> #include <algorithm> #include <functional> using namespace std;
int n, a[50], b[50], res;
int main() { scanf("%d", &n);
for (int i = 0; i < n; ++i) scanf("%d", &a[i]); for (int i = 0; i < n; ++i) scanf("%d", &b[i]);
sort(a, a + n); sort(b, b + n, greater<int>());
for (int i = 0; i < n; ++i) { res += a[i] * b[i]; }
printf("%d\n", res);
return 0; } |
반응형
'PS > BOJ' 카테고리의 다른 글
[백준 BOJ][그리디] 1049 기타줄 (0) | 2018.10.30 |
---|---|
[백준 BOJ] 1032 명령 프롬프트 (0) | 2018.10.29 |
[백준 BOJ] 1009 분산처리 (0) | 2018.10.27 |
[백준 BOJ] 1002 터렛 (0) | 2018.10.26 |
[백준 BOJ][DP] 2167 2차원 배열의 합 (2) | 2018.08.21 |