n๊ฐ์ ์ํ์ 1๋ฒ ์ฅ๋์์ 3๋ฒ ์ฅ๋๋ก ์ฎ๊ธฐ๋ ค๋ฉด
1. n-1๊ฐ์ ์ํ์ 1๋ฒ ์ฅ๋(์ถ๋ฐ)์์ 2๋ฒ ์ฅ๋(์ค๊ฐ)๋ก ์ฎ๊ธด๋ค : ์ฌ๊ท
2. ๊ฐ์ฅ ํฐ ์ํ์ 1๋ฒ ์ฅ๋(์ถ๋ฐ)์์ 3๋ฒ ์ฅ๋(๋์ฐฉ)๋ก ์ฎ๊ธด๋ค
3. n-1๊ฐ์ ์ํ์ 2๋ฒ ์ฅ๋(์ค๊ฐ)์์ 3๋ฒ ์ฅ๋(๋์ฐฉ)๋ก ์ฎ๊ธด๋ค : ์ฌ๊ท
3๊ฐ์ ๊ณผ์ ์ ๊ฑฐ์น๊ณ ์ด 2^n + 1๋ฒ ์ด๋์ด ํ์ํ๋ค.
์ ๊ณผ์ ์ ๊ตฌํํ๋ฉด hanoi(n, start, middle, goal) ์ด ๋๋ค.
# 11729.py
def hanoi(n, start, middle, goal):
if n == 1:
print(f'{start} {goal}')
else:
hanoi(n-1, start, goal, middle)
print(f'{start} {goal}')
hanoi(n-1, middle, start, goal)
n = int(input())
print(2 ** n - 1)
hanoi(n, 1, 2, 3)