๋ฌธ์
์๋ ์์ ์ ์ํ์ด ํญ์ ํฐ ๊ณจ์นซ๊ฑฐ๋ฆฌ์๋ ๋๋ผ๊ฐ ์์๋ค. ์ด ๋๋ผ์ ๊ตญ์ ๊น์ง๋ฏผ์ ๋ค์๊ณผ ๊ฐ์ ๋ฌธ์ ๋ฅผ ๋ด๊ณ ํฐ ์๊ธ์ ๊ฑธ์๋ค.
๊ธธ์ด๊ฐ 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์ ์ต์๊ฐ์ ์ถ๋ ฅํ๋ค.
ํ์ด
๋ ๊ฐ์ง ํ์ด๊ฐ ์๋ค.
01. ๋ฌธ์ ์ ์กฐ๊ฑด(B ์ฌ๋ฐฐ์ด X)์ ๋ง์กฑํ์ง๋ ์์ง๋ง ์ค์ ๋ก๋ ํจ์จ์ ์ธ ํ์ด
02. ๋ฌธ์ ์ ์กฐ๊ฑด์ ๋ง์กฑํ์ง๋ง ๋นํจ์จ์ ์ธ ํ์ด
๋ ๊ฐ์ง ๋ชจ๋ ์๊ฐํ๋๋ก ํ๊ฒ ๋ค!
// 01. ๋ฌธ์ ์๋ฏธ(B ์ฌ๋ฐฐ์ด x)์๋ ๋ค๋ฅด๋ ์ค์ ๋ก๋ ํจ๊ณผ์ ์ธ ํ์ด
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
vector<int> a;
vector<int> b;
int solution(int n){
int sum = 0;
sort(a.begin(), a.end());
sort(b.begin(), b.end(), greater<>());
for (int i=0; i<n; i++){
sum += a[i]*b[i];
}
return sum;
}
// 02. B๋ฅผ ์ฌ๋ฐฐ์ดํ์ง ์๋ ํ์ด
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
vector<int> a;
vector<int> b;
int solution(int n){
int sum = 0, idx = -1;
sort(a.begin(), a.end());
for (int i=0; i<n; i++){
int max = -1;
for (int j=0; j<n-i; j++){
if (max < b[j]){
max = b[j];
idx = j;
}
}
sum += a[i]*max;
b.erase(b.begin()+idx);
}
return sum;
}
// ๋ฉ์ธ ํจ์
int main(){
int n;
cin >> n;
a.assign(n, 0);
b.assign(n, 0);
for (int i=0; i<n; i++){
cin >> a[i];
}
for (int i=0; i<n; i++){
cin >> b[i];
}
cout << solution(n);
}
'โจ Algorithm' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[๋ฐฑ์ค/C++] 1431๋ฒ : ์๋ฆฌ์ผ ๋ฒํธ (0) | 2021.09.06 |
---|---|
[๋ฐฑ์ค/C++] 1316๋ฒ : ๊ทธ๋ฃน ๋จ์ด ์ฒด์ปค (0) | 2021.09.06 |
[๋ฐฑ์ค/C++] 13305๋ฒ : ์ฃผ์ ์ (0) | 2021.09.02 |
[EPPER/C++] ๋ฌธ์์ด ์์ถ (0) | 2021.09.01 |
[EPPER/C++] ๋ง์๋ผ OX (0) | 2021.08.31 |
๋๊ธ