728x90
반응형
https://www.acmicpc.net/problem/11729
Python
import sys
n = int(sys.stdin.readline().rstrip())
ans = []
def hanoi(start,thor,dest,n):
global ans
if n <= 0:
return
#1 -> 3 -> 2
hanoi(start, dest, thor, n-1)
ans.append(str(start)+" "+str(dest))
#2 -> 1 -> 3
hanoi(thor, start, dest, n-1)
hanoi(1,2,3,n)
print(len(ans))
print("\n".join(ans))
정리본
import sys
n = int(sys.stdin.readline().rstrip())
ans = []
def hanoi(start,dest,n):
global ans
if n <= 0:
return
hanoi(start, 6-(start+dest), n-1)
ans.append(str(start)+" "+str(dest))
hanoi(6-(start+dest),dest, n-1)
hanoi(1,3,n)
print(len(ans))
print("\n".join(ans))
728x90
반응형
'Algorithm Problems' 카테고리의 다른 글
[백준][Python] 11724번 연결 요소의 개수 - DP (0) | 2021.09.10 |
---|---|
[백준][Python] 2597번 계단 오르기 - DP (0) | 2021.09.03 |
[백준][Python] 색종이 만들기 - 재귀(분할정복) (0) | 2021.08.31 |
[백준][Python] 1932번 정수 삼각형 - DP (0) | 2021.08.30 |
[백준][Python] 1780번 종이의개수 - 재귀(분할정복) (0) | 2021.08.29 |