-
[프로그래머스] 하노이의 탑ALGORITHM/PROGRAMMERS 2021. 9. 6. 12:54
https://programmers.co.kr/learn/courses/30/lessons/12946
2021-09-06
123456789101112131415161718192021222324import java.util.*;class Solution {static ArrayList<int[]> list;static void hanoi(int n, int from, int to , int via) {if(n == 1) {list.add(new int[]{from , to});} else {hanoi(n-1, from, via, to);list.add(new int[]{from, to});hanoi(n-1, via, to , from);}}static int[][] solution(int n) {list = new ArrayList<>();hanoi(n, 1, 3, 2);int[][] answer = new int[list.size()][2];for(int i = 0; i < list.size(); i++) {answer[i][0] = list.get(i)[0];answer[i][1] = list.get(i)[1];}return answer;}}cs #문제풀이
1) n == 1 일 때, 출발지(from)에서 도착지(to)로 바로 넘겨주면 된다.
2) 아닌 경우
(1) n-1만큼, 출발지(from)에서 경유지(via)에 넘겨준다.
(2) 남은 판을 출발지(from)에서 도착지(to)로 바로 넘겨준다.
(3) n-1만큼, 경유지(via)에서 도착지(to)로 넘겨준다.
총 횟수는 2^n - 1
'ALGORITHM > PROGRAMMERS' 카테고리의 다른 글
[프로그래머스] 여행경로 (0) 2021.09.06 [프로그래머스] 위클리 챌린지 6주차 (0) 2021.09.06 [프로그래머스] N-Queen (0) 2021.09.06 [프로그래머스] 가장 긴 팰린드롬 (0) 2021.09.01 [프로그래머스] 표 편집 (2021 카카오 채용연계형 인턴십) (0) 2021.09.01