https://www.acmicpc.net/problem/11729
def hanoi(n, a, b, c, list):
if n == 1:
list.append(f'{a} {b}')
else:
hanoi(n-1, a, c, b, list)
list.append(f'{a} {b}')
hanoi(n-1, c, b, a, list)
n = int(input())
list = []
hanoi(n, 1, 3, 2, list)
print(len(list))
for i in list:
print(i)
a: from
b: to
c: by
1. 원반이 n개일 때 작은 원반 n-1개를 1에서 2로 이동
2. 큰 원반 1개를 1에서 3으로 이동
3. 작은 원반 n-1개를 2에서 3으로 이동
'알고리즘 > 백준' 카테고리의 다른 글
백준 2231: 분해합 (Python) (0) | 2021.09.08 |
---|---|
백준 2798: 블랙잭 (Python) (0) | 2021.09.08 |
백준 2447: 별 찍기 - 10 (Python) (0) | 2021.09.08 |
백준 10870: 피보나치 수 5 (Python) (0) | 2021.09.06 |
백준 10872: 팩토리얼 (Python) (0) | 2021.09.04 |