반응형
🔺 문제
🔺 코드
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);
}
}
✅ 해결 아이디어
- 규칙을 찾아 점화식 구하기!
- 최소 단위에 대한 조건!
복습해야지..ㅠ
🔺 다른 풀이들
비슷한데 cnt를 직접 구하신...
(참고)
- 풀이
반응형
'코테 > 백준' 카테고리의 다른 글
[백준/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 |