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
๐ ์๊ณ ๋ฆฌ์ฆ: ๋ธ๋ฃจํธํฌ์ค-์ฌ๊ท
๐ idea: ์ซ์ ์ฌ์ด์ ๊ฐ ์๋ฆฌ์ ๋ํด ์ต๋ 4๊ฐ์ง ๊ฒฝ์ฐ(+,-,*,/)๊ฐ ์์ผ๋ฏ๋ก ๊ฐ ๊ฒฝ์ฐ์ ๋ํด ์ฌ๊ท ํจ์ ํธ์ถ. (๋จ, ์ฐ์ฐ์์ ๊ฐ์๋ฅผ ํ์ธํ ๊ฒ!)
๐ ์ถ๊ฐ๋ก ์ ๋ฆฌํ ๋ด์ฉ:
- make_pair() ํจ์๋ utility ํค๋์ ์ ์๋์ด์์ผ๋ utility ํค๋๋ <vector>๋ <algorithm>์ ํฌํจ๋์ด์์ผ๋ฏ๋ก ๋ฐ๋ก <utility>๋ฅผ includeํ ํ์๋ ์๋ค.
- for(auto element : array) ์ฌ์ฉ๋ฒ
๐ป ์ฝ๋:
#include <iostream>
#include <vector>
using namespace std;
int N;
vector<int> arr;
pair<int, int> solve(int index, int result, int plus, int minus, int multi, int divide) {
// ์ ๋ต ๋ง๋ ๊ฒฝ์ฐ
if (index == N) {
return make_pair(result, result);
}
// ๋ค์ ํธ์ถ: ๊ฐ ์๋ฆฌ์ ์ฐ์ฐ์๊ฐ +, -, *, / ์ธ ๊ฒฝ์ฐ ๊ฐ 4๊ฐ์ง์ ๋ํด ํธ์ถ
// ์ฐ์ฐ ๊ฒฐ๊ณผ๋ฅผ ์ ์ฅํ ๋ฒกํฐ ์์ฑ
vector<pair<int, int>> res;
if (plus > 0)
res.push_back(solve(index + 1, result + arr[index], plus - 1, minus, multi, divide));
if (minus > 0)
res.push_back(solve(index + 1, result - arr[index], plus, minus - 1, multi, divide));
if (multi > 0)
res.push_back(solve(index + 1, result * arr[index], plus, minus, multi - 1, divide));
if (divide > 0)
res.push_back(solve(index + 1, result / arr[index], plus, minus, multi, divide - 1));
// ์ต๋๊ฐ, ์ต์๊ฐ ์ฐพ๊ธฐ
pair<int, int> ans = res[0]; // ans: ์ต๋๊ฐ, ์ต์๊ฐ์ pair
for (auto i : res) {
if (ans.first < i.first) ans.first = i.first;
if (ans.second > i.second) ans.second = i.second;
}
return ans;
}
int main() {
ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0);
cin >> N;
int x;
for (int i = 0; i < N; i++) {
cin >> x;
arr.push_back(x);
}
int plus, minus, multi, divide;
cin >> plus >> minus >> multi >> divide;
auto answer = solve(1, arr[0], plus, minus, multi, divide);
cout << answer.first << '\n' << answer.second << '\n';
return 0;
}
'์๊ณ ๋ฆฌ์ฆ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
๋ฐฑ์ค_16197_๋ ๋์ (0) | 2022.04.29 |
---|---|
๋ฐฑ์ค_14500_ํ ํธ๋ก๋ฏธ๋ ธ (0) | 2022.04.29 |
๋ฐฑ์ค_14225_๋ถ๋ถ์์ด์ ํฉ(ver2) (0) | 2022.04.14 |
๋ฐฑ์ค_1182_๋ถ๋ถ์์ด์ ํฉ (0) | 2022.04.14 |
๋ฐฑ์ค_6603_๋ก๋ (0) | 2022.04.12 |