백준 algorithm

백준 1026 - 보물

cosmohoo 2020. 7. 4. 01:15
반응형

문제 설명

=> 간단한 정렬 문제입니다. 

=> 문제에서 B는 그대로 두라고 하지만, 실제로는 정렬을 해야 계산이 쉬워집니다.

 

  • A를 정렬한다.

  • B를 정렬한다.

  • A[0] * B [N-1] + A [1] * B [N-2]... 를 취한다.

 

 

 

 

 

=> 위와 같은 방법으로 문제를 해결하면 됩니다. 

 

 

<code>

#include <iostream>
#include <algorithm>
#include <string>
#include <vector>
#include <queue>


using namespace std;


int main()
{
    ios_base::sync_with_stdio(false);
    cin.tie(nullptr);
    cout.tie(nullptr);
    
    int N;
    cin >> N;
    
    int A[51];
    int B[51];
    
    for(int i=0; i<N; i++)
    {
        int tmp;
        cin >> tmp;
        A[i] =tmp;
    }
    
    for(int i=0; i<N; i++)
    {
        int tmp;
        cin >> tmp;
        B[i] =tmp;
    }

    
    sort(A, A+N);
    sort(B, B+N);
    
    int ans = 0;
    for(int i=0; i<N; i++)
    {
        ans += A[i] * B[N-i-1];
    }
    
    cout << ans <<'\n';
    return 0;
}

실행화면

 

반응형