하노이탑 코딩 자바


하노이탑 코딩 자바

하노이탑 문제는 재귀 호출을 이용해서 해결이 가능하다. 어떤식으로 생각을 전개해야 하냐면, 탑을 지지할 핀 A, B, C 세 개가 있다고 했을 때 A에서 C로 원판들을 옮겨야 한다. n개의 원판을 옮긴다고 생각해보자. n개의 원판을 옮기는 것은 n-1개의 원판을 B로 옮기고 난 뒤, 가장 아래에 가야하는 원판을 C로 옮긴뒤 B에 있는 나머지 n-1개의 원판을 C에 옮긴다. 이것이 n개의 원판을 옮기는 방법이다. 이 대목에서 재귀호출의 힌트를 얻으면 된다. 코드는 아래와 같다. public static void hanoi(int n, int a, int b, int c) { if (n == 1) { System.out.print(a + " " + c + "\n"); } else { hanoi(n - 1, a, c, b); System.out.print(a + " " + c + "\n"); hanoi(n - 1, b, a, c); } } 먼저 if부분은 판이 하나 남았다면 a에 있는 원...


#공식 #자바 #하노이탑 #하노이탑코딩

원문링크 : 하노이탑 코딩 자바