문제

programmers12941

두 vector의 element들을 곱해 더한 값이 최소가 되도록 하는 문제.
두 벡터를 정렬해놓고 하나는 가장 작은 element부터, 다른 벡터는 가장 큰 element부터 곱해서 더하면 최솟값을 얻는다.

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

int solution(vector<int> A, vector<int> B)
{
	int answer = 0;
	int i = 0;

	sort(A.begin(), A.end());
	sort(B.begin(), B.end(), greater<int>());

	int size = A.size();
	for (i; i < size; i++) answer += A[i] * B[i];

	return answer;
}