전형적인 하노이 탑 구현 문제이다.
def honoi_tower(n, start, tmp, end):
if n == 1:
print(start, end)
else:
honoi_tower(n-1, start, end, tmp)
print(start, end)
honoi_tower(n-1, tmp, start, end)
num = int(input())
print(2 ** num - 1)
if num <= 20:
honoi_tower(num, 1, 2, 3)
풀이는 아래 게시물을 참고하자.
https://sojeong-lululala.tistory.com/188
[대학교 수업][자료구조][순환[재귀]] 하노이 탑
하노이 탑을 구현해보자. n개의 하노이 탑이 있다면, 가장 큰 원판을 제외하고 모두 이동시킨다. 1. C를 임시버퍼로 사용하여 A에 쌓여있는 n-1개의 원판을 B로 옮긴다. 2. A의 가장 큰 원판을 C로 옮
sojeong-lululala.tistory.com
'알고리즘 > 백준' 카테고리의 다른 글
[BOJ] [Python] 5052 : 전화번호 목록 (0) | 2021.10.27 |
---|---|
[BOJ] [Python] 4358 : 생태학 (0) | 2021.10.27 |
[BOJ] [Python] 14621 : 나만 안되는 연애 (0) | 2021.10.25 |
[BOJ] [Python] 1197 : 최소 스패닝 트리 (0) | 2021.10.08 |
[BOJ] [Python] 18116 : 로봇 조립 (0) | 2021.10.07 |