HyeLog

๋ฐฑ์ค€_14888_์—ฐ์‚ฐ์ž ๋ผ์›Œ๋„ฃ๊ธฐ (๋ธŒ๋ฃจํŠธํฌ์Šค-์ˆœ์—ด) ๋ณธ๋ฌธ

์•Œ๊ณ ๋ฆฌ์ฆ˜

๋ฐฑ์ค€_14888_์—ฐ์‚ฐ์ž ๋ผ์›Œ๋„ฃ๊ธฐ (๋ธŒ๋ฃจํŠธํฌ์Šค-์ˆœ์—ด)

shj718 2022. 5. 10. 15:15

๐ŸŒฟ๋ฌธ์ œ: 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;
}