[백준/BOJ] 백준 1026번 : 보물
2020. 9. 16. 01:11ㆍ알고리즘 문제풀이
s의 최솟값을 구하기 위해, a는 내림차순으로 정렬하고, b는 오름차순으로 정렬하여 정렬한 순서대로 a[i]*b[i]를 해서 그 값을 s에 더했다.
코드
#include <iostream>
#include <algorithm>
#include <vector>
using namespace std;
int main()
{
cin.tie(NULL);
ios_base::sync_with_stdio(false);
int n;
int input;
vector<int> a;
vector<int> b;
int s = 0;
cin >> n;
for (int i = 0; i < n; i++)
{
cin >> input;
a.push_back(input);
}
for (int i = 0; i < n; i++)
{
cin >> input;
b.push_back(input);
}
//a는 오름차순으로 정렬뒤 뒤집어서 내림차순으로 정렬한다
sort(a.begin(), a.end());
reverse(a.begin(), a.end());
//b는 오름차순으로 정렬한다
sort(b.begin(), b.end());
//a는 큰수, b는 작은수부터 해서 a[i]*b[i]의 값을 s에 더한다
for (int i = 0; i < n; i++)
{
s += a[i] * b[i];
}
cout << s;
return 0;
}
'알고리즘 문제풀이' 카테고리의 다른 글
[백준/BOJ] 백준 2501번 : 약수 구하기 (0) | 2020.09.16 |
---|---|
[백준/BOJ] 백준 2609번 : 최대공약수와 최소공배수 (0) | 2020.09.16 |
[백준/BOJ] 백준 2751번 : 수 정렬하기 2 (0) | 2020.09.16 |
[백준/BOJ] 백준 10817번 : 세 수 (0) | 2020.09.16 |
[백준/BOJ] 백준 3986번 : 좋은 단어 (0) | 2020.09.15 |