: 재귀 문제의 대표 주자.
이제 일반 구현말고 진짜로 알고리즘 공부 스타트다.
온갖 풀이 찾아보고 하면서 문제 푸는 방식들에 익숙해지려고 해볼 예정.
import java.util.*;
class Solution {
static ArrayList<int[]> arr;
public int[][] solution(int n) {
arr = new ArrayList<>();
hanoi(1, 2, 3, n);
int[][] answer = new int[arr.size()][2];
for(int i = 0; i < arr.size(); i++) {
answer[i][0]= arr.get(i)[0];
answer[i][1]= arr.get(i)[1];
}
return answer;
}
public static void hanoi(int start, int way, int end, int n){
if(n==1){
arr.add(new int[] {start,end});
return;
} else {
hanoi(start,end,way,n-1);
arr.add(new int[] {start,end});
hanoi(way,start,end,n-1);
}
}
}
프로그래머스는 내 스스로 풀어서 점수를 올리는 재미가 있으므로,,
당분간 풀이를 보며 하는 알고리즘 공부는 백준 문제를 이용할 것 같다.