반응형
🔺 문제
11729번: 하노이 탑 이동 순서
세 개의 장대가 있고 첫 번째 장대에는 반경이 서로 다른 n개의 원판이 쌓여 있다. 각 원판은 반경이 큰 순서대로 쌓여있다. 이제 수도승들이 다음 규칙에 따라 첫 번째 장대에서 세 번째 장대로
www.acmicpc.net
🔺 코드
import java.util.*;
import java.io.*;
public class Main {
public 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");
Hanoi(n, 1, 2, 3);
System.out.println(sb);
}
// 출발지 경유지 목적지
public static void Hanoi(int n, int from, int via, int to) {
if(n == 1) {
sb.append(from + " " + to + "\n");
return;
}
// 1) n-1개를 A→B로 이동
Hanoi(n-1, from, to, via);
// 2) 1개를 A→C로 이동
sb.append(from + " " + to + "\n");
// 3) n-1개를 B→C로 이동
Hanoi(n-1, via, from, to);
}
}
✅ 해결 아이디어
- 규칙을 찾아 점화식 구하기!
- 최소 단위에 대한 조건!
복습해야지..ㅠ
🔺 다른 풀이들
[백준 알고리즘][자바] 11729번 : 하노이 탑 이동 순서
https://www.acmicpc.net/problem/11729 11729번: 하노이 탑 이동 순서 세 개의 장대가 있고 첫 번째 장대에는 반경이 서로 다른 n개의 원판이 쌓여 있다. 각 원판은 반경이 큰 순서대로 쌓여있다. 이제 수도승
hyunipad.tistory.com
비슷한데 cnt를 직접 구하신...
(참고)
- 풀이
[백준] 11729번 : 하노이 탑 이동 순서 - JAVA [자바]
www.acmicpc.net/problem/11729 11729번: 하노이 탑 이동 순서 세 개의 장대가 있고 첫 번째 장대에는 반경이 서로 다른 n개의 원판이 쌓여 있다. 각 원판은 반경이 큰 순서대로 쌓여있다. 이제 수도승들이
st-lab.tistory.com
하노이의 탑 - 위키백과, 우리 모두의 백과사전
위키백과, 우리 모두의 백과사전. 하노이의 탑 하노이의 탑(Tower of Hanoi)은 퍼즐의 일종이다. 세 개의 기둥과 이 기둥에 꽂을 수 있는 크기가 다양한 원판들이 있고, 퍼즐을 시작하기 전에는 한 기
ko.wikipedia.org
반응형
'코테 > 백준' 카테고리의 다른 글
[백준/JAVA] 1735번: 분수 합 (0) | 2023.03.27 |
---|---|
[백준/JAVA] 5086번: 배수와 약수 (0) | 2023.03.27 |
[백준/JAVA] 4779번: 칸토어 집합 (0) | 2023.03.23 |
[백준/JAVA] 24060번: 알고리즘 수업 - 병합 정렬 1 (0) | 2023.03.23 |
[백준/JAVA] 18870번: 좌표 압축 (0) | 2023.03.22 |