728x90
import java.util.Scanner;
public class Main {
static int k = 0;
static StringBuffer buffer = new StringBuffer();
static void hanoi( int n, int from, int by, int to ) {
k++;
if( n == 1 )
buffer.append( from + " " + to + "\n" );
else {
hanoi( n-1, from, to, by );
buffer.append( from + " " + to + "\n" );
hanoi( n-1, by, from, to );
}
}
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
hanoi( sc.nextInt(), 1, 2, 3 );
buffer.insert( 0, k + "\n" );
System.out.println( buffer.toString() );
}
}
k를 먼저 출력하기 위해
StringBuffer에 담아서 한꺼번에 출력함
-------------------------------
하노이 탑 이동의 3 step
1. 작은 원반 n-1 개를 '1'에서 '2'로 이동
2. 큰 원반 1개를 '1'에서 '3'로 이동
3. 작은 원반 n-1개를 '2'에서 '3'로 이동
출처 : https://ko.wikipedia.org/wiki/%ED%95%98%EB%85%B8%EC%9D%B4%EC%9D%98_%ED%83%91#C
반응형
'코딩 문제 풀기 ( Algorithm problem solving ) > 백준 온라인 저지 ( BOJ )' 카테고리의 다른 글
[백준(Baekjoon)][자바(java)] (2798) 블랙잭 / 브루트 포스 (0) | 2020.03.13 |
---|---|
[백준(Baekjoon)][자바(java)] (2447) 별 찍기 - 10 / 재귀 (0) | 2020.03.12 |
[백준(Baekjoon)][자바(java)] (10870) 피보나치 수 5 / 재귀 (0) | 2020.03.11 |
[백준(Baekjoon)][자바(java)] (10872) 팩토리얼 / 재귀 (0) | 2020.03.11 |
[백준(Baekjoon)][자바(java)] (1002) 터렛 / 수학 2 (0) | 2020.03.11 |