문제
https://www.acmicpc.net/problem/11729
11729번: 하노이 탑 이동 순서
세 개의 장대가 있고 첫 번째 장대에는 반경이 서로 다른 n개의 원판이 쌓여 있다. 각 원판은 반경이 큰 순서대로 쌓여있다. 이제 수도승들이 다음 규칙에 따라 첫 번째 장대에서 세 번째 장대로
www.acmicpc.net
코드
import java.io.*;
import java.util.*;
class Main {
static int count = 0;
static StringBuilder sb = new StringBuilder();
public static void main(String args[]) throws Exception{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int n = Integer.parseInt(br.readLine());
hanoi(1, 3, n);
System.out.println(count);
System.out.print(sb);
}
static void hanoi(int start, int end, int n) {
if(n == 0)
return;
hanoi(start, 6 - start - end, n-1);
count+=1;
sb.append(start + " " + end).append("\n");
hanoi(6-start-end, end, n-1);
}
}