불러오는 중
기둥 A에 크기가 다른 원판 n개가 아래부터 큰 순서로 쌓여 있다. 원판은 1번이 가장 작고 n번이 가장 크다. 다음 규칙을 지키며 원판을 모두 기둥 C로 옮긴다.
원판 n개를 옮기는 방법은 세 단계이다. 위의 n−1개를 A에서 B로 옮기고, 원판 n을 A에서 C로 옮긴 뒤, B의 n−1개를 C로 옮긴다.
이동 횟수가 가장 적은 방법으로 옮길 때 이동 횟수와 이동 과정을 출력한다.
첫째 줄에 원판 수 n이 주어진다.
첫째 줄에 이동 횟수를 출력한다. 둘째 줄부터 한 줄에 이동 하나씩, 원판 k를 기둥 X에서 기둥 Y로 옮기면 k: X -> Y를 출력한다.
1≤n≤15
반복문 대신 재귀 함수로 푼다.
입력 1
2
출력 1
3
1: A -> B
2: A -> C
1: B -> C
입력 2
3
출력 2
7
1: A -> C
2: A -> B
1: C -> B
3: A -> C
1: B -> A
2: B -> C
1: A -> C