카테고리 없음
[백준] JAVA 1729: 하노이 탑 이동 순서
코딩하는곰곰
2022. 2. 4. 20:05
https://www.acmicpc.net/problem/11729
11729번: 하노이 탑 이동 순서
세 개의 장대가 있고 첫 번째 장대에는 반경이 서로 다른 n개의 원판이 쌓여 있다. 각 원판은 반경이 큰 순서대로 쌓여있다. 이제 수도승들이 다음 규칙에 따라 첫 번째 장대에서 세 번째 장대로
www.acmicpc.net
Solution:
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Main {
static StringBuilder sb = new StringBuilder();
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int N = Integer.parseInt(br.readLine());
sb.append((int)(Math.pow(2, N))-1).append("\n");
int start = 1;
int side = 2;
int end = 3;
Hanoi(start, side, end, N);
System.out.print(sb);
br.close();
}
static void Hanoi(int start, int side, int end, int N) {
if(N==1) {
sb.append(start+" "+end).append("\n");
}
else {
Hanoi(start, end, side, N-1);
sb.append(start+" "+end).append("\n");
Hanoi(side, start, end, N-1);
}
}
}