PS/Baekjoon Online Judge
[백준 1026] 보물 [C]
kimyoungrok
2021. 8. 5. 14:05
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);
}
출처
1026번: 보물
첫째 줄에 N이 주어진다. 둘째 줄에는 A에 있는 N개의 수가 순서대로 주어지고, 셋째 줄에는 B에 있는 수가 순서대로 주어진다. N은 50보다 작거나 같은 자연수이고, A와 B의 각 원소는 100보다 작거
www.acmicpc.net
728x90