문제 링크
https://programmers.co.kr/learn/courses/30/lessons/12941
C++ 풀이
#include <vector>
#include <algorithm>
using namespace std;
int solution(vector<int> A, vector<int> B)
{
int answer = 0;
sort(A.begin(), A.end());
sort(B.begin(), B.end());
for (int i = 0; i < A.size(); i++)
answer += (A[i] * B[B.size() - i - 1]); //A오름차순 * B내림차순으로 원소곱을 더해줌
return answer;
}
두 벡터의 원소들의 곱의 합을 최소로 하기 위해서는
A(오름차순으로 정렬된 벡터) * B(내림차순으로 정렬된 벡터)
형태로 만들어준 뒤, 순서대로 쌍을 곱해주면 된다.
반응형
'알고리즘 · 코딩' 카테고리의 다른 글
[프로그래머스] 가장 큰 수 (0) | 2020.02.13 |
---|---|
[프로그래머스] 다리를 지나는 트럭 (0) | 2020.02.05 |
[프로그래머스] 프린터 (0) | 2020.01.04 |
[프로그래머스] 완주하지 못한 선수 (0) | 2019.12.27 |
[프로그래머스] 종이접기 (0) | 2019.12.02 |