https://school.programmers.co.kr/learn/courses/30/lessons/12941
A는 오름차순, B는 내림차순으로 정렬 후 각 원소를 곱한걸 answer에 더해준다.
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int solution(vector<int> A, vector<int> B)
{
int answer = 0;
sort(A.begin(),A.end(),greater());
sort(B.begin(),B.end());
for(int i = 0; i <A.size(); i++)
{
answer += A[i] * B[i];
}
return answer;
}
#include <vector>
#include <numeric>
#include <algorithm>
using namespace std;
int solution(vector<int> A, vector<int> B){
sort(A.begin(),A.end()); sort(B.rbegin(),B.rend());
return inner_product(A.begin(),A.end(),B.begin(),0);
}
A를 오름차순, B를 내림차순으로 한건 똑같고
곱의 합을 구할 때 inner_product를 사용하였다.
#include <numeric>에 포함된 함수로
x2=inner_product(b,e,b2,x)
x2는 x를 초기값으로 시작한 구간 [b,e)와 구간 [b2,b2+e-b)의 내적(두 순차열의 곱의 합)