보물
큐솔트를 이용한다.
B배열은 건들지 말라는데 그럼 배열 하나 더만들어서 저장하면 됨.
귀찮으니 생략한다.
#include <stdio.h>
#include <stdlib.h>
int compare(const void* a, const void* b) { //큐솔트를 위한 포인터함수
return (*(int*)a) - (*(int*)b);
}
int main(int argc, char* argv[]){
int *A,*B,n=0,sum=0;
scanf("%d",&n);
A = (int*)malloc(sizeof(int)*n); //동적배열할당
B = (int*)malloc(sizeof(int)*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), compare); //정렬
qsort(B, n, sizeof(int), compare); //혹시 반대 정렬을 원한다면 compare에 있는 a,b를 바꿔적어줌
for (int i = 0; i < n; i++) sum = sum + (A[i] * B[n-i-1]); //A오름차 B내림차
printf("%d", sum);
free(A);
free(B);
return 0;
}
'PROGRAMMING CODE > C' 카테고리의 다른 글
[BACKJOON] No.2164 C언어 (0) | 2021.12.11 |
---|---|
[BAEKJOON] No.1032 C언어 (0) | 2021.10.19 |
[BAEKJOON] No.1094 C언어 (0) | 2021.10.19 |
[BAEKJOON] No.1010 C언어 (0) | 2021.10.19 |
[BAEKJOON] No.1075 C언어 (0) | 2021.10.19 |