728x90
 

1026번: 보물

첫째 줄에 N이 주어진다. 둘째 줄에는 A에 있는 N개의 수가 순서대로 주어지고, 셋째 줄에는 B에 있는 수가 순서대로 주어진다. N은 50보다 작거나 같은 자연수이고, A와 B의 각 원소는 100보다 작거나 같은 음이 아닌 정수이다.

www.acmicpc.net

B는 재배열하면 안 된다고 써있지만 A를 자유롭게 재배열하면 B를 재배열하는 것과 같기 때문에 B를 재배열해도 상관없다.

#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;

bool cmp(int x, int y) {
	return x > y;
}

int main() {
	int n;
	cin >> n;
	vector<int> a(n);
	vector<int> b(n);
	for (int i = 0; i < n; i++) {
		cin >> a[i];
	}
	for (int i = 0; i < n; i++) {
		cin >> b[i];
	}
	sort(a.begin(), a.end());
	sort(b.begin(), b.end(), cmp);
	int sum = 0;
	for (int i = 0; i < n; i++) {
		sum += (a[i] * b[i]);
	}
	cout << sum;
	return 0;
}
728x90

'알고리즘 문제' 카테고리의 다른 글

[백준] 1094번 막대기  (0) 2020.02.07
[백준] 1010번 다리 놓기  (0) 2020.02.07
[백준] 4963번 섬의 개수  (0) 2020.02.06
[백준] 1912번 연속합  (0) 2020.02.06
[백준] 2656번 전깃줄  (0) 2020.02.06

+ Recent posts