재귀를 공부하기 좋은 알고리즘
# from_pos 출발 기둥
# bozo_pos 보조 기둥
# to_pos 도착 기둥
스택을 그려가면서 해보면 이해가 됨.
def hanoi(n, from_pos, bozo_pos, to_pos, depth):
if n == 1:
print(from_pos, "->", to_pos, depth)
hanoi(n-1, from_pos, to_pos, bozo_pos, depth+1)
print(from_pos, "->", to_pos, depth)
hanoi(n-1, bozo_pos, from_pos, to_pos, depth+1)
hanoi(3,"A","B","C",0)
'자료구조와 알고리즘' 카테고리의 다른 글
재귀(Recursion) (0) | 2019.12.10 |
---|---|
위상정렬 (topological sort) (0) | 2019.12.09 |
프림 알고리즘 vs 크루스칼 알고리즘 (0) | 2019.12.09 |
해싱(hashing) 기본 (0) | 2019.11.25 |