728x90
풀이
A는 오름차순, B는 내림차순으로 정렬 후 곱한 값들을 더해주면 된다.
소스코드
#include <stdio.h>
#include <stdlib.h>
int compare1(const void *a, const void *b){
int n1 = *(int *)a, n2 = *(int *)b;
if (n1 < n2)
return -1;
else if (n1 > n2)
return 1;
return 0;
}
int compare2(const void *a, const void *b){
int n1 = *(int *)a, n2 = *(int *)b;
if (n1 > n2)
return -1;
else if (n1 < n2)
return 1;
return 0;
}
int main(){
int N;
scanf("%d", &N);
int A[N], B[N];
for (int i = 0; i < N; i++)
scanf("%d", &A[i]);
for (int i = 0; i < N; i++)
scanf("%d", &B[i]);
qsort(A, N, sizeof(int), compare1);
qsort(B, N, sizeof(int), compare2);
int sum = 0;
for (int i = 0; i < N; i++)
sum += A[i]*B[i];
printf("%d", sum);
}
출처
728x90
'PS > Baekjoon Online Judge' 카테고리의 다른 글
[백준 1260] DFS와 BFS [C] (0) | 2021.08.05 |
---|---|
[백준 2630] 색종이 만들기 [C] (0) | 2021.08.05 |
[백준 1541] 잃어버린 괄호 [C] (0) | 2021.08.04 |
[백준 10953] A+B - 6 [C] (0) | 2021.08.04 |
[백준 10817] 세 수 [C] (0) | 2021.08.04 |