[프로그래머스] 최솟값 만들기 [cpp]

lsh235·2024년 12월 2일
0

CodingTest

목록 보기
18/31

문제 : https://school.programmers.co.kr/learn/courses/30/lessons/12941

핵심

각idx에 위치한 A * B값을 전부 더했을때 최솟값이 되어야함.
따라서, A, B를 오름차순으로 sort후에 b를 뒤집어서 곱하면 끝.


#include <algorithm>
#include <iostream>
#include <vector>

using namespace std;

int solution(vector<int> A, vector<int> B) {
    int answer = 0;
    sort(A.begin(), A.end());
    sort(B.begin(), B.end());
    reverse(B.begin(), B.end());

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

0개의 댓글