๐Ÿ—2529๋ฒˆ. ๋ถ€๋“ฑํ˜ธ, 10ํŒฉํ† ๋ฆฌ์–ผ : ์‹œ๊ฐ„ ๋ณต์žก๋„. 362๋งŒ. -> ์™„ํƒ์ด ๊ฐ€๋Šฅํ•œ ๋ฌธ์ œ. _ ์ „์ฒด๋ฅผ ํ•œ๋ฒˆ์— ์ฒ˜๋ฆฌํ•˜์ž.

phoenixKimยท2022๋…„ 9์›” 4์ผ
0

๋ฐฑ์ค€ ์•Œ๊ณ ๋ฆฌ์ฆ˜

๋ชฉ๋ก ๋ณด๊ธฐ
105/174

๋‹จ์œ„๋ณ„๋กœ ์ฒ˜๋ฆฌํ•˜๋Š” ๊ฒƒ๋ณด๋‹ค, ์ „์ฒด๋ฅผ ํ•œ๋ฒˆ์— ์ฒ˜๋ฆฌํ•˜๋Š” ๊ฒƒ์ด ๊ฐ€๋Šฅํ•˜๋‹ค๋ฉด, ํ•œ๋ฒˆ์— ์ฒ˜๋ฆฌํ•˜์ž.

  • ๋‹จ์œ„๋ณ„๋กœ ๋Š์–ด์„œ ์ฒ˜๋ฆฌํ•˜๊ธฐ ๋ณด๋‹ค๋Š” , ๋ชจ๋“  ์ž…๋ ฅ ์˜ˆ์ œ์—์„œ
    ๊ณตํ†ต์ ์œผ๋กœ ์ฒ˜๋ฆฌ๊ฐ€ ๊ฐ€๋Šฅํ•˜๋‹ค๋ฉด, ํ•œ๋ฒˆ์— ์ฒ˜๋ฆฌํ•˜์ž
    --> ์‹œ๊ฐ„๋ณต์žก๋„ ํšจ์œจ๋„ ์ข‹๊ณ , ๋‚˜๋„ ํŽธํ•˜๊ฒŒ ๊ณ„์‚ฐ์ด ๊ฐ€๋Šฅํ•˜๋‹ค.

string๋„ max ,min ์ฒ˜๋ฆฌ๊ฐ€ ๊ฐ€๋Šฅํ•จ.

๐Ÿ˜‰ํ’€์ด ์ „๋žต์— ๋Œ€ํ•ด ๋‹ค๋ฅธ ๋ฐฉ๋ฒ•๋„ ์žˆ๋Š”์ง€ ์ƒ๊ฐ์„ ํ•ด๋ณด์ž. ๋” ํšจ์œจ์ ์ธ ๊ฑฐ๋ผ๊ณ  ์ƒ๊ฐํ•œ ๊ฑธ๋กœ ์ ‘๊ทผํ•˜์ž.

  • ๋งจ ์ฒ˜์Œ ๋ฌธ์ œ๋ฅผ ์ ‘ํ–ˆ์„ ๋•Œ

    : ๋ถ€๋“ฑํ˜ธ 2๊ฐœ์— ๋งž๋Š” ์ˆซ์ž๋ฅผ ๋ถ€๋“ฑํ˜ธ ํ•˜๋‚˜ํ•˜๋‚˜์”ฉ ๋น„๊ตํ•˜๋ฉด์„œ ์ง„ํ–‰ํ•˜๋ ค๋Š” ํ”„๋กœ์„ธ์Šค๋ฅผ ๋งŒ๋“ค๋ ค๊ณ  ํ–ˆ์Œ. ๋ถ€๋“ฑํ˜ธ์— ์˜ณ์ง€ ์•Š์œผ๋ฉด, ๋‹ค์‹œ ๋Œ์•„๊ฐ€์„œ ๋ณ€๊ฒฝํ•˜๋Š” ๋กœ์ง.
    but ํ•œ๋ฒˆ์— ์ˆซ์ž ์ทจํ•ฉํ•˜๋Š” ๋ฐฉ๋ฒ•์œผ๋กœ ๋ณ€๊ฒฝํ•จ.
    ๋งŒ์•ฝ ๋ถ€๋“ฑํ˜ธ๊ฐ€ ์ตœ๋Œ€์ธ 10๊ฐœ? ๊ฐ€ ๋‚˜์˜ค๋ฉด 10! : 360๋งŒ ์ด๋ฏ€๋กœ
    ์™„ํƒ์ด ๊ฐ€๋Šฅํ•œ ์‹œ๊ฐ„ ๋ณต์žก๋„ ์ด๋‹ค.
    ์กฐํ•ฉ์™„๋ฃŒ๋œ ์ˆซ์ž ํ†ต์งธ๋กœ ๊ฐ€์ง€๊ณ  ์™€์„œ ๋น„๊ต๋ฅผ ํ•ด๋„ ๋จ.
    ๊ทธ๋ฆฌ๊ณ  ์ด๊ฒƒ์ด ๋ณด๋‹ค ์‰ฝ๊ฒŒ ์ ‘๊ทผ ๊ฐ€๋Šฅํ•œ ๋ฐฉ๋ฒ•.

์‹œ๊ฐ„๋ณต์žก๋„

: 10! ์˜ ์‹œ๊ฐ„ ๋ณต์žก๋„๋Š” 360๋งŒ ์ž„.
-> ์™„์ „ ํƒ์ƒ‰์œผ๋กœ ํ’€์–ด๋„ ใ„ฑใ…Š!

์ƒ๊ฐํ•ด๋ณผ์ .

1) ๋ถ€๋“ฑํ˜ธ ์ฒดํฌ ํ•˜๋Š” ํ•จ์ˆ˜๋ฅผ ๋งค๋ฒˆ ํ™•์ธํ•˜๋Š” ๋ฐฉ๋ฒ•.
2) ๋ฌธ์ž์—ด์— ๋‹ค ๋„ฃ์–ด๋ฒ„๋ฆฐ ๋‹ค์Œ์— , ๋ถ€๋“ฑํ˜ธ ์ฒดํฌ๋ฅผ ํ•œ๋ฒˆ์— ํ•˜๋Š” ๋ฐฉ๋ฒ•
-> 2๋ฒˆ์ด ํ›จ์”ฌ ํšจ์œจ์ ์ž„. ํ•จ์ˆ˜ ํ˜ธ์ถœ์„ ์ค„์ผ ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์ž„.

์ฝ”๋“œ

#include <iostream>
#include <algorithm>
#include <string>
#include <vector>
using namespace std;

// ๋ถ€๋“ฑํ˜ธ ์ตœ๋Œ€ 9๊ฐœ๋งŒ ์‚ฌ์šฉ๊ฐ€๋Šฅํ•จ. 
// ๋ถ€๋“ฑํ˜ธ ์—ฐ์‚ฐํ•œ ๊ฐ’๋“ค ์ด 10๊ฐœ๊ฐ€ ์ตœ๋Œ€์ž„.

// ๋ฐฑํŠธ๋ž˜ํ‚น ๋ฐ˜๋ณต๋ฌธ์—์„œ ๋‹ค์Œ ์ธ๋ฑ์Šค๋ฅผ ์ง€์นญํ•˜๊ธฐ ์œ„ํ•œ.
// ๋ณ€์ˆ˜์ž„. 
bool check[10];

int n;

vector<string>vv;

// ๋ถ€๋“ฑํ˜ธ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์•Œ์•„์•ผ ํ•จ. 
bool Result(vector<char>&op , string & word)
{
	for (int i = 0; i < word.size() - 1; ++i)
	{
		if (op[i] == '<')
		{
			if (word[i] > word[i + 1])
			{
				return false;
			}

		}
		else if(op[i] == '>')
		{
			if (word[i] < word[i + 1])
			{
				return false;
			}
		}

	}

	return true;
}


// ์ˆซ์ž ์ค‘์—์„œ ๋ช‡๋ฒˆ์งธ ์ธ๋ฑ์Šค์— ์œ„์น˜ํ•œ ๊ฒƒ์„ 
//์ฒ˜๋ฆฌํ•  ๊ฒƒ์ธ์ง€
// ์˜ˆ๋ฅผ ๋“ค์–ด์„œ < > ์ด๋ผ๋ฉด ์ˆซ์ž๊ฐ€ 3๊ฐœ๋Š” ์™€์•ผ ํ•จ. 
void backTracking( int index ,string word , vector<char>&op)
{
	// ๋ถ€๋“ฑํ˜ธ๊ฐ€ 2๊ฐœ์ผ ๋•Œ๋Š” 3๊ฐœ์—์„œ ์Šคํ†ฑ!
	if (index >= n + 1)
	{
		// string์—๋‹ค๊ฐ€ ๋ฌธ์ž์—ด ๋‹ด์•„๊ฐ€์ง€๊ณ  
		// ํ•œ๋ฒˆ์— ์ฒดํ‚น ํ•จ์ˆ˜์—๋‹ค๊ฐ€ ๋˜์ ธ๊ฐ€์ง€๊ณ  ํ™•์ธํ•˜๋„๋ก ํ•˜์ž.
		if (Result(op, word))
		{
			//์ „์—ญ ๋ฒกํ„ฐ์—๋‹ค๊ฐ€ ์ €์žฅํ•ด๋†“์Œ. 
			vv.push_back(word);
			
			// ์ถœ๋ ฅ ํ™•์ธ์šฉ 
			//cout << word << endl;
		}
		
		return;
	}

	// 0์—์„œ 9๊นŒ์ง€์˜ ์ˆซ์ž๊ฐ€ ๋“ค์–ด ๊ฐˆ์ˆ˜ ์žˆ์Œ. 
	for (int i = 0; i <= 9; ++i)
	{
		if (check[i])
			continue;

		check[i] = true;
		string temp = to_string(i);

		backTracking(index + 1 , word + temp, op);


		check[i] = false;

	}


}


int main() 
{
	
	cin >> n;

	vector<char>v(n);

	for (int i = 0; i < n; ++i)
	{
		cin >> v[i];
	}

	backTracking(0, "", v);

	cout << *max_element(vv.begin(), vv.end()) << endl;
	cout << *min_element(vv.begin(), vv.end());
}
profile
๐Ÿ”ฅ๐Ÿ”ฅ๐Ÿ”ฅ

0๊ฐœ์˜ ๋Œ“๊ธ€

๊ด€๋ จ ์ฑ„์šฉ ์ •๋ณด