알고리즘/백준

백준 11729: 하노이 탑 이동 순서 (Python)

sssbin 2021. 9. 8. 14:05

https://www.acmicpc.net/problem/11729

 

11729번: 하노이 탑 이동 순서

세 개의 장대가 있고 첫 번째 장대에는 반경이 서로 다른 n개의 원판이 쌓여 있다. 각 원판은 반경이 큰 순서대로 쌓여있다. 이제 수도승들이 다음 규칙에 따라 첫 번째 장대에서 세 번째 장대로

www.acmicpc.net

 

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