import java.util.Scanner;
public class Main {
static int count = 0;
static StringBuilder a = new StringBuilder("");
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int start = 1;
int notd = 2;
int destination = 3;
int n = sc.nextInt();
hanoi(1,2,3,n);
System.out.println(count);// 2^count -1
System.out.println(a);
}
public static void hanoi(int start ,int notd , int destination , int n) {
count++;
if(n == 1) {
a.append(start + " " + destination+"\n");
}else if(n>1) {
int tempN = n - 1;
hanoi(start, destination, notd, tempN);
a.append(start + " " + destination + "\n");
hanoi(notd, start, destination, tempN);
}
}
}
System.out.println 을 계속 찍어냈더니 시간초과가 뜸 => StringBuilder를 사용해서 해결
피드백 받고 수정했더니 엄청난 성능 향상
원판이 1개인 경우
원판이 2개인 경우
원판이 N+1개인 경우