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

Wonjun·2022년 7월 20일
0

알고리즘 & 문제풀이

목록 보기
38/50
post-thumbnail

📝 최솟값 만들기

문제 설명

최솟값 만들기

해결 방법

곱한 값이 최소가 되기 위해서는, 큰 숫자일수록 작은 숫자와 곱해야 상대적으로 더 작은값이 나온다. A 배열은 오름차순 정렬 B 배열은 내림차순으로 정렬한 후 곱하고 더한다. rbegin(), rend()를 사용해서 정렬하는 방법도 있다.

💻소스코드

#include <vector>
#include <algorithm>

using namespace std;

int solution(vector<int> A, vector<int> B)
{
    int answer = 0;
    sort(A.begin(), A.end());   // A는 오름차순 정렬
    sort(B.begin(), B.end(), greater<int>()); // B는 내림차순 정렬
    for (int i = 0; i < A.size(); i++) {
        answer += A[i] * B[i];
    }
    return answer;
}
profile
알고리즘

0개의 댓글