나무 숲

하노이 타워 (The Tower of Hanoi) 본문

Career/알고리즘 · 자료구조

하노이 타워 (The Tower of Hanoi)

wood.forest 2016. 7. 9. 20:20


조건

- 원반은 한 번에 하나만 옮길 수 있다

- 작은 원반 위에 큰 원반을 올릴 수 없다




패턴 분석



C를 3으로 옮기고자 할 때, A와 B를 2에 옮겨 놓으면 가능하다. -> B를 2로 옮기고자 할 때, A를 3에 옮겨 놓으면 가능하다.


이번엔 4개 (위에서부터 아래로 A,B,C,D)

D를 3으로 옮기고자 할 때, A,B,C를 2로 옮겨 놓으면 가능하다. -> C를 2로 옮기고자 할 때, A,B를 3으로 옮겨 놓으면 가능하다. -> B를 3으로 옮기고자 할 때, A를 2로 옮겨 놓으면 가능하다.


... 같은 방식으로 몇 개의 원반이 있던 간에 어떠한 동일 패턴이 존재한다는 것을 알 수 있다.


이를 다시 일반적으로 표현해보면,

n개의 원반이 있다고 할 때 (위에서부터 아래로 1,2...n번째)

1~(n-1)번째 원반을 2로 옮긴다 -> n번째 원반을 3으로 옮긴다 -> 1~(n-1)번째 원반을 3으로 옮긴다




재귀적 구현


728x90
반응형
Comments