코딩테스트
[JAVA] 하노이 탑 알고리즘
dackyy
2022. 7. 23. 02:47
반응형
package Algorithm;
import java.util.Scanner;
public class Hanoi {
static void move(int no, int x, int y) {
if (no > 1)
move(no - 1, x , 6-x-y);
System.out.println("원반"+no+"를 " +x+"기둥에서"+y+"기둥으로 옮김");
if (no > 1)
move(no - 1, 6 - x - y , y);
}
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("원반의 개수 :");
move(sc.nextInt(), 1, 3);
}
/*
n개의 원반을 1기둥에서 3기둥으로 옮겨야 한다.
1. n-1의 원반을 1기둥에서 2기둥으로 옮김
1-1. 1의 원반을 1기둥에서 3기둥으로 옮김
1-2. 2의 원반을 1기둥에서 2기둥으로 옮김
1-3. 1의 원반을 3기둥에서 2기둥으로 옮김
2. 남은 1개의 원반을 3기둥으로 옮김
3. n-1의 원반을 3기둥으로 옮김
*/
}
반응형