Contents
내가 작성한 코드
내가 작성한 코드
import java.util.*;
class Solution {
public int[][] solution(int n) {
List<int[]> result = new ArrayList<>();
move(n,result, 1, 3, 2); // 시작: 1, 도착: 3, 경유지: 2
// 리스트를 배열로 변환
int[][] answer = new int[result.size()][2];
for (int i = 0; i < result.size(); i++) {
answer[i] = result.get(i);
}
return answer;
}
// 재귀 함수
private void move(int n, List<int[]> result, int start, int end, int temp) {
// 판이 하나일 경우
if (n == 1) {
result.add(new int[] { start, end }); // 원판 하나를 바로 옮김
return;
}
move(n - 1, result, start, temp, end); // 작은 원판들 중간 기둥으로 이동
result.add(new int[] { start, end }); // 가장 큰 원판 이동
move(n - 1, result, temp, end, start); // 다시 작은 원판들 목적지로 이동
}
}
Share article