본문 바로가기

자바 Do,It 알고리즘(끝)

[자바 Do It! 알고리즘]Chapter05 재귀 알고리즘 (하노이의 탑)

그림으로 보면 이해가 가는데, 코드로 보면 이해가 안가네요..

[하노이의 탑] - 쌓아 놓은 원반을 최소의 횟수로 옮기기 위한 알고리즘

이 챕터는 글보다는 그림이 더 나은 것 같습니다.

1. 기둥 번호를 정수 1,2,3 으로 나타냅니다.

2. 기둥 번호의 합이 6이므로 시작기둥, 목표 기둥이 어느 기둥이더라도 중간 기둥은 6-x-y로 구할 수 있습니다.

3. 원반은 no개이므로 move 메서드는 아래와 같은 과정을 거칩니다.

1) 바닥 원반을 제외한 그룹(원반[1] ~ 원반[no-1])을 시작 기둥에서 중간 기둥으로 옮깁니다.

2) 바닥 원반 no를 시작 기둥에서 목표 기둥으로 옮겼음을 출력합니다.

3) 바닥 원반을 제외한 그룹(원반[1] ~ 원반[no-1])을 중간 기둥에서 목표 기둥으로 옮깁니다.

4. 1), 3) 은 재귀 호출에 의해 해결합니다.