# 문제
# 입력 및 출력
# 풀이
간단하게 생각하면 가장 작은수와 가장 큰 수를 더하면 된다
즉 A배열은 내림차순으로 정렬하고 B배열은 오름차순으로 정렬해
가장 작은 수를 가장 큰 수와 곱해서 최소값을 구하는 방식이다
정렬을 위해 algorithm 헤더의 sort함수를 이용했고, 내림차순으로 정렬하기 위해 compare 함수를 따로 작성함
#include <iostream>
#include <algorithm>
using namespace std;
int A[50], B[50];
int compare(int a, int b) {
return a > b;
}
int main() {
int N, result = 0;
cin >> N;
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, compare); // 내림차순
for (int i = 0; i < N; i++) {
result += A[i] * B[i];
}
cout << result;
}
'Algorithm > 📖Baekjoon' 카테고리의 다른 글
#2217 로프 (0) | 2022.04.17 |
---|---|
#5585 거스름돈 (0) | 2022.04.16 |
#11047 동전 0 (0) | 2022.04.14 |
#11399 ATM (0) | 2022.04.14 |
#10942 팰린드롬? - 미완 (0) | 2022.04.13 |
댓글