백준
백준 11729 하노이 탑 이동 순서(Java)
Park DJ
2023. 2. 14. 23:19
https://www.acmicpc.net/problem/11729
11729번: 하노이 탑 이동 순서
세 개의 장대가 있고 첫 번째 장대에는 반경이 서로 다른 n개의 원판이 쌓여 있다. 각 원판은 반경이 큰 순서대로 쌓여있다. 이제 수도승들이 다음 규칙에 따라 첫 번째 장대에서 세 번째 장대로
www.acmicpc.net
해석 및 팁
이 문제는 재귀를 활용하는 함수입니다. 하노이의 탑에 대해서는 다음 링크를 참조하시기 바랍니다.
https://ko.wikipedia.org/wiki/하노이의_탑
하노이의 탑 - 위키백과, 우리 모두의 백과사전
위키백과, 우리 모두의 백과사전. 하노이의 탑(Tower of Hanoi)은 퍼즐의 일종이다. 세 개의 기둥과 이 기둥에 꽂을 수 있는 크기가 다양한 원판들이 있고, 퍼즐을 시작하기 전에는 한 기둥에 원판들
ko.wikipedia.org
Java 코드
import java.util.Scanner;
public class Main {
static StringBuilder sb = new StringBuilder();
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
sb.append((int)Math.pow(2, n) - 1).append("\n");
cal(n, 1, 2, 3);
System.out.println(sb);
}
public static void cal(int num, int fir, int sec, int thr) {
if(num == 1) {
sb.append(fir+" "+thr).append("\n");
return;
}
cal(num - 1, fir, thr, sec);
sb.append(fir+" "+thr).append("\n");
cal(num - 1, sec, fir, thr);
}
}