JAVA 프로그래밍

문제

하노이 탑에서 출발기둥에 있는 여러 원반을 도착기둥으로 모두 옮기는 문제입니다 이를 해결하는 다음 프로그램에 대해 빈칸을 채우세요 단, 원반은 한 번에 하나씩만 옮길 수 있고, 작은 원반 위에 더 큰 원반을 옮길 수 없습니다.
하노이 탑의 원반 개수를 입력하세요(10개 이하) : 2
  1    .    .  
  2    .    .  
 ---  ---  ---
  A    B    C 
  .    .    .  
  2    1    .  
 ---  ---  ---
  A    B    C 
  .    .    .  
  .    1    2  
 ---  ---  ---
  A    B    C 
  .    .    1  
  .    .    2  
 ---  ---  ---
  A    B    C 

하노이 탑의 원반 개수를 입력하세요(10개 이하) : 3
  1    .    .  
  2    .    .  
  3    .    .  
 ---  ---  ---
  A    B    C 
  .    .    .  
  2    .    .  
  3    .    1  
 ---  ---  ---
  A    B    C 
  .    .    .  
  .    .    .  
  3    2    1  
 ---  ---  ---
  A    B    C 
  .    .    .  
  .    1    .  
  3    2    .  
 ---  ---  ---
  A    B    C 
  .    .    .  
  .    1    .  
  .    2    3  
 ---  ---  ---
  A    B    C 
  .    .    .  
  .    .    .  
  1    2    3  
 ---  ---  ---
  A    B    C 
  .    .    .  
  .    .    2  
  1    .    3  
 ---  ---  ---
  A    B    C 
  .    .    1  
  .    .    2  
  .    .    3  
 ---  ---  ---
  A    B    C 

하노이 탑의 원반 개수를 입력하세요(10개 이하) : 4
  1    .    .  
  2    .    .  
  3    .    .  
  4    .    .  
 ---  ---  ---
  A    B    C 
  .    .    .  
  2    .    .  
  3    .    .  
  4    1    .  
 ---  ---  ---
  A    B    C 
  .    .    .  
  .    .    .  
  3    .    .  
  4    1    2  
 ---  ---  ---
  A    B    C 
  .    .    .  
  .    .    .  
  3    .    1  
  4    .    2  
 ---  ---  ---
  A    B    C 
  .    .    .  
  .    .    .  
  .    .    1  
  4    3    2  
 ---  ---  ---
  A    B    C 
  .    .    .  
  .    .    .  
  1    .    .  
  4    3    2  
 ---  ---  ---
  A    B    C 
  .    .    .  
  .    .    .  
  1    2    .  
  4    3    .  
 ---  ---  ---
  A    B    C 
  .    .    .  
  .    1    .  
  .    2    .  
  4    3    .  
 ---  ---  ---
  A    B    C 
  .    .    .  
  .    1    .  
  .    2    .  
  .    3    4  
 ---  ---  ---
  A    B    C 
  .    .    .  
  .    .    .  
  .    2    1  
  .    3    4  
 ---  ---  ---
  A    B    C 
  .    .    .  
  .    .    .  
  .    .    1  
  2    3    4  
 ---  ---  ---
  A    B    C 
  .    .    .  
  .    .    .  
  1    .    .  
  2    3    4  
 ---  ---  ---
  A    B    C 
  .    .    .  
  .    .    .  
  1    .    3  
  2    .    4  
 ---  ---  ---
  A    B    C 
  .    .    .  
  .    .    .  
  .    .    3  
  2    1    4  
 ---  ---  ---
  A    B    C 
  .    .    .  
  .    .    2  
  .    .    3  
  .    1    4  
 ---  ---  ---
  A    B    C 
  .    .    1  
  .    .    2  
  .    .    3  
  .    .    4  
 ---  ---  ---
  A    B    C 

코드 빈칸 채우기

import java.util.Scanner; 
 
public class TowerOfHanoi 
{		 
	private static [][] tower = new [3][10]; 
	private static [] diskCountPerTower = new [3]; 
	private static  totalDiskCount; 
	 
	private static  initializeTower(  diskCount ) { 
		totalDiskCount = diskCount; 
		diskCountPerTower[0] = diskCount; 
		diskCountPerTower[1] = 0; 
		diskCountPerTower[2] = 0; 
		 (  i = 0; i < diskCount; i ) { 
			tower[0][i] = diskCount - i; 
		} 
	} 
	 
	private static  printTower() { 
		 (  line = totalDiskCount-1; line  0; line ) { 
			 (  number = 0; number < 3; number ) { 
				 ( tower[number][line]  0 )  
					System.out.print( "  " + tower[number][line] + "  " ); 
				  
					System.out.print( "  .  " ); 
			} 
			System.out.println(); 
		} 
		System.out.println(" ---  ---  ---\n  A    B    C \n"); 
	} 
	 
	private static void moveOneDisk( int from, int to ) { 
		 top = diskCountPerTower[]; 
		 disk = tower[][top]; 
		tower[][top] = 0; 
		 
		top = diskCountPerTower[]; 
		tower[][top] = disk; 
			 
		printTower(); 
	} 
	 
	private static void moveDisks( int diskCount, int from, int temp, int to ) { 
		 ( diskCount  1 ) { 
			( ,  ); 
		} 
		 { 
			( diskCount-1, , ,  ); 
			( ,  ); 
			( diskCount-1, , ,  ); 
		} 
	} 
	public static void main( String[] args ) { 
		Scanner scan = new Scanner( System.in ); 
		System.out.print( "하노이 탑의 원반 개수를 입력하세요(10개 이하) : " ); 
		 diskCount = scan.nextInt(); 
		initializeTower( diskCount ); 
		printTower(); 
	 
		( diskCount, 0, 1, 2 ); 
		scan.close(); 
	} 
}