https://www.acmicpc.net/problem/11729
๋ฌธ์
์ธ ๊ฐ์ ์ฅ๋๊ฐ ์๊ณ ์ฒซ ๋ฒ์งธ ์ฅ๋์๋ ๋ฐ๊ฒฝ์ด ์๋ก ๋ค๋ฅธ n๊ฐ์ ์ํ์ด ์์ฌ ์๋ค. ๊ฐ ์ํ์ ๋ฐ๊ฒฝ์ด ํฐ ์์๋๋ก ์์ฌ์๋ค. ์ด์ ์๋์น๋ค์ด ๋ค์ ๊ท์น์ ๋ฐ๋ผ ์ฒซ ๋ฒ์งธ ์ฅ๋์์ ์ธ ๋ฒ์งธ ์ฅ๋๋ก ์ฎ๊ธฐ๋ ค ํ๋ค.
- ํ ๋ฒ์ ํ ๊ฐ์ ์ํ๋ง์ ๋ค๋ฅธ ํ์ผ๋ก ์ฎ๊ธธ ์ ์๋ค.
- ์์ ๋์ ์ํ์ ํญ์ ์์ ๊ฒ์ด ์๋์ ๊ฒ๋ณด๋ค ์์์ผ ํ๋ค.
์ด ์์ ์ ์ํํ๋๋ฐ ํ์ํ ์ด๋ ์์๋ฅผ ์ถ๋ ฅํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ๋ผ. ๋จ, ์ด๋ ํ์๋ ์ต์๊ฐ ๋์ด์ผ ํ๋ค.
์๋ ๊ทธ๋ฆผ์ ์ํ์ด 5๊ฐ์ธ ๊ฒฝ์ฐ์ ์์์ด๋ค.
์ ๋ ฅ
์ฒซ์งธ ์ค์ ์ฒซ ๋ฒ์งธ ์ฅ๋์ ์์ธ ์ํ์ ๊ฐ์ N (1 ≤ N ≤ 20)์ด ์ฃผ์ด์ง๋ค.
์ถ๋ ฅ
์ฒซ์งธ ์ค์ ์ฎ๊ธด ํ์ K๋ฅผ ์ถ๋ ฅํ๋ค.
๋ ๋ฒ์งธ ์ค๋ถํฐ ์ํ ๊ณผ์ ์ ์ถ๋ ฅํ๋ค. ๋ ๋ฒ์งธ ์ค๋ถํฐ K๊ฐ์ ์ค์ ๊ฑธ์ณ ๋ ์ ์ A B๋ฅผ ๋น์นธ์ ์ฌ์ด์ ๋๊ณ ์ถ๋ ฅํ๋๋ฐ, ์ด๋ A๋ฒ์งธ ํ์ ๊ฐ์ฅ ์์ ์๋ ์ํ์ B๋ฒ์งธ ํ์ ๊ฐ์ฅ ์๋ก ์ฎ๊ธด๋ค๋ ๋ป์ด๋ค.
ํ์ด
์ฃผ์์ผ๋ก.. ์ค๋ช ...
์ฌ๊ทํจ์... ๋ํ๋ฌธ์ ..
// Authored by : seondal
// Co-authored by : -
//#include <bits/stdc++.h>
#include <iostream>
#include <cmath>
using namespace std;
// a๊ธฐ๋ฅ์์ b๊ธฐ๋ฅ์ผ๋ก ์ํ n๊ฐ ์ฎ๊ธฐ๋ ๊ณผ์ ์ถ๋ ฅ
void func(int a, int b, int n) {
// ์ํ ๊ฐฏ์ ํ๊ฐ ๋จ์ผ๋ฉด ์ฌ๊ท ์ข
๋ฃ
if(n==1) {
cout << a << " " << b << "\n";
return;
}
int c = 6-a-b; // a์ b๋ฅผ ์ ์ธํ ๋๋จธ์ง ๊ธฐ๋ฅ์ ๋ฒํธ
func(a, c, n-1); // (1) ์ํ n-1๊ฐ a->c
cout << a << " " << b << "\n"; // (2) n๋ฒ ์ํ a->b
func(c, b, n-1); // (3) ์ํ n-1๊ฐ c->b
}
int main() {
ios_base::sync_with_stdio(0);
cin.tie(0);
int n;
cin >> n;
int count = pow(2, n) - 1;
cout << count << "\n"; // ์ด ์ด๋ ํ์๋ฅผ ์ถ๋ ฅํด๋ณด์์ (์ผ๋ฐํญ์ฐ์ฐ)
func(1,3,n); // ๊ณผ์ ์ ์ถ๋ ฅํด๋ณด์์
return 0;
}
/*
*/
'๐ Baaaaaarking > 0x0B๊ฐ - ์ฌ๊ท' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[BOJ S1] ๋ฐฑ์ค 1992๋ฒ: ์ฟผ๋ํธ๋ฆฌ (83%) (0) | 2022.05.22 |
---|---|
[BOJ S3] 2603๋ฒ: ์์ข ์ด ๋ง๋ค๊ธฐ (0) | 2022.05.22 |
[BOJ S2][C++] ๋ฐฑ์ค 1780๋ฒ : ์ข ์ด์ ๊ฐ์ (0) | 2022.05.19 |
[BOJ S5] ๋ฐฑ์ค 17478๋ฒ: ์ฌ๊ทํจ์๊ฐ ๋ญ๊ฐ์? (0) | 2022.05.17 |
[BOJ S1][C++] ๋ฐฑ์ค 1629๋ฒ: ๊ณฑ์ (0) | 2022.05.04 |