[백준/BOJ] 백준 1026번 : 보물
2020. 9. 16. 01:11ㆍ알고리즘 문제풀이
1026번: 보물
첫째 줄에 N이 주어진다. 둘째 줄에는 A에 있는 N개의 수가 순서대로 주어지고, 셋째 줄에는 B에 있는 수가 순서대로 주어진다. N은 50보다 작거나 같은 자연수이고, A와 B의 각 원소는 100보다 작거�
www.acmicpc.net
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 |