πŸ•οΈ ICPC Sinchon/Sorting

[BOJ S4][C++] λ°±μ€€ 1026번 : 보물

선달 2022. 9. 6. 16:33
λ°˜μ‘ν˜•

문제

μ˜›λ‚  μ˜›μ μ— μˆ˜ν•™μ΄ 항상 큰 κ³¨μΉ«κ±°λ¦¬μ˜€λ˜ λ‚˜λΌκ°€ μžˆμ—ˆλ‹€. 이 λ‚˜λΌμ˜ κ΅­μ™• 김지민은 λ‹€μŒκ³Ό 같은 문제λ₯Ό λ‚΄κ³  큰 μƒκΈˆμ„ κ±Έμ—ˆλ‹€.

길이가 N인 μ •μˆ˜ λ°°μ—΄ A와 Bκ°€ μžˆλ‹€. λ‹€μŒκ³Ό 같이 ν•¨μˆ˜ Sλ₯Ό μ •μ˜ν•˜μž.

S = A[0] × B[0] + ... + A[N-1] × B[N-1]

S의 값을 κ°€μž₯ μž‘κ²Œ λ§Œλ“€κΈ° μœ„ν•΄ A의 수λ₯Ό μž¬λ°°μ—΄ν•˜μž. 단, B에 μžˆλŠ” μˆ˜λŠ” μž¬λ°°μ—΄ν•˜λ©΄ μ•ˆ λœλ‹€.

S의 μ΅œμ†Ÿκ°’μ„ 좜λ ₯ν•˜λŠ” ν”„λ‘œκ·Έλž¨μ„ μž‘μ„±ν•˜μ‹œμ˜€.

μž…λ ₯

첫째 쀄에 N이 주어진닀. λ‘˜μ§Έ μ€„μ—λŠ” A에 μžˆλŠ” N개의 μˆ˜κ°€ μˆœμ„œλŒ€λ‘œ 주어지고, μ…‹μ§Έ μ€„μ—λŠ” B에 μžˆλŠ” μˆ˜κ°€ μˆœμ„œλŒ€λ‘œ 주어진닀. N은 50보닀 μž‘κ±°λ‚˜ 같은 μžμ—°μˆ˜μ΄κ³ , A와 B의 각 μ›μ†ŒλŠ” 100보닀 μž‘κ±°λ‚˜ 같은 음이 μ•„λ‹Œ μ •μˆ˜μ΄λ‹€.

좜λ ₯

첫째 쀄에 S의 μ΅œμ†Ÿκ°’μ„ 좜λ ₯ν•œλ‹€.

 

풀이

λ¬Έμ œμ—λŠ” bλ₯Ό μž¬λ°°μ—΄ν•˜μ§€ 말라고 λ˜μ–΄μžˆμ§€λ§Œ..

λ‚΄ μ•Œ λ°”κ°€ μ•„λ‹ˆλ‹€ !

 

// Authored by : seondal
// Co-authored by : -

// #include <bits/stdc++.h>
#include <iostream>
#include <vector>
#include <algorithm>

using namespace std;

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

int main() {
    int n;
    cin >> n;
    
    vector<int> a(n), b(n);
    for(int i=0; i<n; i++) cin >> a[i];
    for(int i=0; i<n; i++) cin >> b[i];
    
    sort(a.begin(), a.end());
    sort(b.begin(), b.end(), desc);
    
    int s = 0;
    for(int i=0; i<n; i++) s += a[i]*b[i];
    
    cout << s;
    
    return 0;
}

/*
 */
λ°˜μ‘ν˜•