URL = https://www.acmicpc.net/problem/11729
package hanoitop;
import java.util.Scanner;
public class HanoiTop {
public static int count = 0;
public static void main(String[] args){
//1~20의 조건이 맞는 수
int onePan = new Scanner(System.in).nextInt();
StringBuilder sb = new StringBuilder();
solve(onePan,1,3,sb);
System.out.println(count);
System.out.println(sb.toString());
}
/*소스해설... 위주로*/
public static void solve(int n, int x, int y, StringBuilder sb){
if(n==0) return;
solve(n-1,x,6-x-y,sb); //n-1번째를 중간봉으로 옮긴다.)
count++;
sb.append(x+" "+y+"\n"); //마지막판을 목적봉으로 옮긴다.
solve(n-1,6-x-y,y,sb);//n-1번째를 목적봉으로 옮긴다.
}
}
'전공지식 > 알고리즘' 카테고리의 다른 글
[알고리즘][그래프][9466] 팀프로젝트 (0) | 2017.03.09 |
---|---|
[알고리즘]Scanner vs BufferReader (1) | 2017.01.22 |
[백준][그래프][2667] 단지번호붙이기 (0) | 2017.01.08 |
[백준][DP][9465]스티커 (0) | 2016.12.18 |
[백준][DP][2011] 암호코드 (2) | 2016.12.17 |