HyeLog
๋ฐฑ์ค_14888_์ฐ์ฐ์ ๋ผ์๋ฃ๊ธฐ (๋ธ๋ฃจํธํฌ์ค-์์ด) ๋ณธ๋ฌธ
๐ฟ๋ฌธ์ : https://www.acmicpc.net/problem/14888
14888๋ฒ: ์ฐ์ฐ์ ๋ผ์๋ฃ๊ธฐ
์ฒซ์งธ ์ค์ ์์ ๊ฐ์ N(2 ≤ N ≤ 11)๊ฐ ์ฃผ์ด์ง๋ค. ๋์งธ ์ค์๋ A1, A2, ..., AN์ด ์ฃผ์ด์ง๋ค. (1 ≤ Ai ≤ 100) ์ ์งธ ์ค์๋ ํฉ์ด N-1์ธ 4๊ฐ์ ์ ์๊ฐ ์ฃผ์ด์ง๋๋ฐ, ์ฐจ๋ก๋๋ก ๋ง์ (+)์ ๊ฐ์, ๋บ์ (-)์ ๊ฐ์,
www.acmicpc.net
๐ฟ์๊ณ ๋ฆฌ์ฆ: ๋ธ๋ฃจํธํฌ์ค - ์์ด
์ด ๋ฌธ์ ๋ฅผ ์ ๋ฒ์๋ ์ฌ๊ท๋ก ํ์์๋๋ฐ, ์ด๋ฒ์๋ ์์ด๋ก ํ์๋ค. ์ฐ์ฐ์์ ๊ฐ์๊ฐ N-1๊ฐ๋ก ์ ํด์ ธ์๊ณ , ๊ทธ๋ค์ ์์๋ฅผ ์ ํ๋ ๋ฌธ์ ์ด๊ธฐ ๋๋ฌธ์ ์์ด๋ก ํ ์ ์๋ค.
๐ฟalgorithm ํค๋์ minmax_element ํจ์๋ฅผ ์ฌ์ฉํ๋ฉด ์ต๋/์ต์๊ฐ์ ์ฝ๊ฒ ๊ตฌํ ์ ์๋ค.
๐ฟ์ฝ๋:
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int N;
int solve(vector<int> &a, vector<int> &op) {
int result = a[0];
int size = op.size();
for (int i = 0; i < size; i++) {
if (op[i] == 0) {
result += a[i + 1];
}
else if (op[i] == 1) {
result -= a[i + 1];
}
else if (op[i] == 2) {
result *= a[i + 1];
}
else {
result /= a[i + 1];
}
}
return result;
}
int main() {
ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0);
cin >> N;
vector<int> a(N);
for (int i = 0; i < N; i++) {
cin >> a[i];
}
vector<int> op;
int x;
for (int i = 0; i < 4; i++) {
cin >> x;
for (int j = 0; j < x; j++) {
op.push_back(i);
}
}
// ์๋ ๋ค์ ์์ด์ ๊ตฌํ๊ธฐ ์ ์ ์ ๋ ฌํด์ผํ์ง๋ง ์ด ๋ฌธ์ ์์๋ ์์์ 0,1,2,3 ์์ผ๋ก ๋ค์ด๊ฐ๋ฏ๋ก ์ ๋ ฌ ์๋ต ๊ฐ๋ฅ
vector<int> t;
do {
int tmp = solve(a, op);
t.push_back(tmp);
} while (next_permutation(op.begin(), op.end()));
auto ans = minmax_element(t.begin(), t.end());
cout << *ans.second << '\n';
cout << *ans.first << '\n';
return 0;
}
'์๊ณ ๋ฆฌ์ฆ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
๋ฐฑ์ค_14225_๋ถ๋ถ์์ด์ ํฉ (0) | 2022.05.11 |
---|---|
๋ฐฑ์ค_14889_์คํํธ์ ๋งํฌ(๋ธ๋ฃจํธํฌ์ค-์์ด) (0) | 2022.05.10 |
๋ฐฑ์ค_1339_๋จ์ด์ํ (0) | 2022.05.10 |
๋ฐฑ์ค_2529_๋ถ๋ฑํธ (0) | 2022.05.10 |
๋ฐฑ์ค_2580_์ค๋์ฟ (0) | 2022.05.04 |