최대 1 분 소요

Question

Q Q2


Solution

  • 곱의 적은 수를 만드려면 (작은 수 x 큰 수)를 해야한다.
  • A와 B를 각각 내림,오름차순으로 만들고 for 루프를 돌아 곱한 값을 answer에 더한다.

Cord

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

using namespace std;

bool myCompare(int a, int b)
{
    return a > b;
}

int solution(vector<int> A, vector<int> B)
{
    int answer = 0;
    
    // 한 쪽은 오름차순, 한 쪽은 내림차순 
    sort(A.begin(), A.end());
    sort(B.begin(), B.end(), myCompare);
    
    for(int i = 0; i < A.size(); i++)
    {
        answer += A[i] * B[i];
    }
    
    return answer;
}

Result

Result