하노이 탑 이동 순서

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


풀이


탑이 n개일 때 하노이탑의 해결을 위 그림과 같다.
1. n-1개의 탑을 b로 옮기고 n번째 탑을 c로 옮긴다.
2. b에서 n-1개의 탑을 c로 옮긴다.
생각해보면 간단한 과정이다.

이 과정을 구현하기 위해 탑의 개수와 시작 지점, 중간 지점, 도착 지점의 네 가지 매개 변수로 구성된 함수를 만들고
위 그림에 해당하는 과정을 그대로 매개 변수로 설정하여 호출한다.
과정 1처럼 n-1개의 탑을 시작 지점 a에서 도착 지점 b로 옮기고
현재 옮기는 과정 출력 후
b로 옮겨 놓은 n-1개의 탑을 도착 지점 c로 옮기는 과정 2를 구현한다.
또 탑의 개수가 1일 경우에는 바로 옮기기만 하면 되므로 바로 출력하면 된다.
반환값으로는 옮기는 개수가 반환되도록 하기위해 현재 과정 한 번에 탑의 개수가 1일 때를 계속 누적한다.