๋ฐ์ํ
https://programmers.co.kr/learn/courses/30/lessons/12946
์ฝ๋
class Solution {
public static int[][] answer;
public static int x = 0;
// n๊ฐ๋ฅผ other๊ธฐ๋ฅ์ ์ฌ์ฉํด from -> to๋ก ์ฎ๊ธฐ๊ธฐ
public static void hanoi(int n, int from, int other, int to){
if(n == 0)
return;
hanoi(n-1, from, to, other); // n-1๊ฐ์ ์ํ์ ๋ชฉ์ ์ง๊ฐ ์๋ ๊ณณ(other)๋ก ์ฎ๊ฒจ๋์.
answer[x][0] = from; // ๋ง์ง๋ง ์ํ์ ๋ชฉ์ ์ง๋ก ์ฎ๊น.
answer[x++][1] = to; // ๋ง์ง๋ง ์ํ์ ๋ชฉ์ ์ง๋ก ์ฎ๊น.
hanoi(n-1, other, from, to); // ๋ชฉ์ ์ง๊ฐ ์๋ ๊ณณ(other)์ ์ฎ๊ฒจ๋์๋ ์ํ๋ค์ ๋ชฉ์ ์ง๋ก ์ฎ๊น
}
public int[][] solution(int n) {
int num = (int)Math.pow(2, n) - 1; // ํ๋
ธ์ด์ ์ด๋ ํ์: 2^n - 1
answer = new int[num][2]; // ํ์๋ num๋งํผ, ์ด์ 3๊ฐ(์ธ ๊ฐ์ ๊ธฐ๋ฅ)
hanoi(n, 1, 2, 3);
return answer;
}
}
ํ์ด
ํ๋ ธ์ด์ํ ์ด๋ ํ์๋ 2^n - 1 ์ด๋ผ๊ณ ์ธ์ฐ๊ณ ์์๋ค.
๊ธฐํ ์์ธํ ํ์ด๋ ์๋ ์ฐธ๊ณ
๋ฐฑ์ค 11729๋ฒ ํ๋ ธ์ดํ์ด๋์์
๋ฐ์ํ
'Algorithm' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
ํ๋ก๊ทธ๋๋จธ์ค[Java] - (Level2)์ ํ์ ์๊ฐ ์ด๋ (0) | 2020.03.17 |
---|---|
ํ๋ก๊ทธ๋๋จธ์ค[Java] - (Level3)์ต๊ณ ์ ์งํฉ (1) | 2020.03.17 |
ํ๋ก๊ทธ๋๋จธ์ค[Java] - (Level3)๋ฐฉ๋ฌธ ๊ธธ์ด (0) | 2020.03.17 |
[Codeforces] 1005A: Tanya and Stairways (0) | 2020.03.17 |
ํ๋ก๊ทธ๋๋จธ์ค[Java] - (Level2)์์ ๋์งํ (0) | 2020.03.16 |
๋๊ธ