SMALL

안녕하세요 오늘은 수학원리를 이용한 문제를 풀어보겠습니다.
전략:
1. 첫번째 배열을 오름차순으로 정렬하고 두 번째 배열을 내림차순으로 정렬한다.
2. 대응하는 원소를 곱하여 result에 더해준다.
코드:
#include <bits/stdc++.h>
using namespace std;
int comp(int a, int b){
return a>b;
}
int main(){
ios::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
int N;
cin>>N;
vector<int> in_1(N);
vector<int> in_2(N);
for(int i = 0; i<N; ++i){
cin>>in_1[i];
}
for(int i = 0; i<N; ++i){
cin>>in_2[i];
}
sort(in_1.begin(), in_1.end());
sort(in_2.begin(), in_2.end(), comp);
int result = 0;
for(int i= 0; i<N; ++i){
result += in_1[i] * in_2[i];
}
cout<<result<<"\n";
}
LIST
'BOJ 문제풀이' 카테고리의 다른 글
백준 2436 c++ 풀이 (0) | 2021.10.10 |
---|---|
백준 10867번 c++ 풀이 (0) | 2021.09.19 |
백준 1182번 c++ 풀이 (0) | 2021.09.19 |
백준 9461 c++ 풀이 (0) | 2021.08.31 |
백준 15649 c++ (0) | 2021.08.22 |