[알고리즘C++]최솟값 만들기

후이재·2020년 9월 11일
1

오늘의 문제

https://programmers.co.kr/learn/courses/30/lessons/12941?language=cpp

최솟값 만들기

나의 풀이

#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.begin(), B.end());
    reverse(B.begin(), B.end());

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

모범 답안

#include<iostream>
#include<vector>
#include<algorithm>
using namespace std;

int getMinSum(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.at(i) * B.at(A.size() - i - 1);

    return answer;
}
int main()
{
    vector<int> tA{1,2,3}, tB{3,4,5};

    //아래는 테스트 출력을 위한 코드입니다.
    cout<<getMinSum(tA,tB);
}

배울 점

  • reverse를 안하고 size에서 빼다니 영리하군
profile
공부를 위한 벨로그

0개의 댓글