[프로그래머스] 최솟값 만들기 - c++

삼식이·2025년 7월 28일
0

알고리즘

목록 보기
77/81

최솟값 만들기

두 배열의 원소 곱의 합이 최소가 되게 해야한다.

한 배열의 최솟값과, 다른 배열의 최댓값을 곱하는게 가장 작은 값을 만들 수 있는 방법이다.
따라서 한 배열은 오름차순, 다른 배열은 내림차순으로 정렬한다.

두 배열의 길이가 동일하다고 했으므로 A의 배열 길이만큼 반복문을 돌려서 두 배열의 각 원소를 곱한 값을 전부 더한 결과를 반환하면 된다.

#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());
    sort(B.rbegin(), B.rend());
    for(int i=0; i<A.size(); i++) {
        answer += A[i]*B[i];
    }

    return answer;
}

0개의 댓글