~๋ชฉ์ฐจ~
๋ฌธ์
๋ค์ ์๊ณ ๋ฆฌ์ฆ ๋ฌธ์ ๋ฅผ ํ๊ธฐ์ํด ํ๋ก๊ทธ๋๋จธ์ค์ ๋ค์ด๊ฐ๋ค.
AI๊ฐ ๋ด๊ฐ ๋ถ์กฑํ ๋ฌธ์ ์ ํ์ ์ถ์ฒํด์ฃผ์๋๋ฐ, ๋ฐ๋ก ์ด ํ๋ ธ์ด์ ํ ๋ฌธ์ ์๋ค.
๋ด๊ฐ ๋งค๋ฒ ํ๋ค์ดํ๋ ๋ฌธ์ ์ด๊ณ , AI์ ํต์ฐฐ๋ ฅ์ ๊ฐํํ๋ค,, ๋ค์๋ ์์ด๋ฒ๋ฆฌ์ง ์๋๋ก ๋ธ๋ก๊ทธ๋ก ์ ๋ฆฌํ๋ ค๊ณ ํ๋ค.
https://school.programmers.co.kr/learn/courses/30/lessons/12946
๋ฌธ์ ํด๊ฒฐ ํฌ์ธํธ
- ์ ํ์ ์ธ ์ฌ๊ทํธ์ถ ๋ฌธ์
- ํ๋ ธ์ด ํ ์๋ฆฌ ์ดํดํ๊ธฐ
* 3๊ฐ์ ๊ธฐ๋ฅ์์ ๊ฐ์ฅ ์ผ์ชฝ์ ์์นํ N๊ฐ์ ๊ธฐ๋ฅ์ ๊ฐ์ฅ ์ค๋ฅธ์ชฝ์ผ๋ก ๋ชจ๋ ์ฎ๊ธฐ๋ ๋ฌธ์
* ์์ ํ์ด ํฐ ํ ์๋ ์์นํ ์ ์๋ค.
* ํ ๋ฒ์ ํ๋์ ํ๋ง ์ฎ๊ธธ ์ ์๋ค.
- N๊ฐ์ ํ, ์ฎ๊ธฐ๋ ์์๋ฅผ ์๊ฐํด๋ณด์
1. ๋งจ ์๋ ํ์ ์์์์น(1)์์ ๋ชฉํ์์น(3)๋ก ์ฎ๊ธฐ๊ณ ์ถ๋ค
2. N-1๊ฐ์ ํ์ ์์์์น(1)์์ ๋๋จธ์ง ๊ธฐ๋ฅ(2)์ผ๋ก ์ฎ๊ธด๋ค.
3. ๋งจ ์๋ ํ์ ์ด์ ๋ชฉํ์์น(3)๋ก ์ฎ๊ธด๋ค.
4. N-1๊ฐ์ ํ์ ๋๋จธ์ง ๊ธฐ๋ฅ(2)์์ ๋ชฉํ์์น๋ก ์ฎ๊ธด๋ค(3)
์ฌ๊ธฐ์ ์ฃผ๋ชฉํ ์ ์ N-1๊ฐ์ ํ์ ๋์์ ์ฎ๊ธธ ์ ์๋ ๋ฐฉ๋ฒ์ ์กด์ฌํ์ง ์๋๋ค.
๊ทธ๋ฌ๋, ๋ค์ ์์ธํ ์๊ฐํด๋ณด๋ฉด N-1๊ฐ์ ํ์ N๊ฐ์ ํ์์ ํ์ด ํ๋ ๋น ์ก์ ๋ฟ ์ ์ฎ๊ธฐ๋ ์์๋ ๋์ผํ๊ฒ ๋์ํ๋ค.
๋ฐ๋ณต -> ์ฌ๊ทํจ์
ํ์ ๊ฐ์, ์์์์น, ๋ชฉํ์์น, ๋๋จธ์ง ๊ธฐ๋ฅ์์น -> ๋งค๊ฐ๋ณ์
์์ฑ ์ฝ๋
import java.util.*;
class Solution {
List<int[]> list = new ArrayList<>();
public int[][] solution(int n) {
hanoi(n, 1, 3, 2);
return list.toArray(new int[1][list.size()]);
}
public void hanoi(int n, int from, int to, int mid){
if(n == 0) return;
// 1. ์์์์น์์ n-1๊ฐ ๊ธฐ๋ฅ์ ๋๋จธ์ง ๊ธฐ๋ฅ์ผ๋ก ์ด๋
hanoi(n-1, from, mid, to);
// 2. ๋งจ ๋ฐ ๊ธฐ๋ฅ์ ๋ชฉํ์์น๋ก ์ด๋
list.add(new int[]{from, to});
// 3. ๋๋จธ์ง ๊ธฐ๋ฅ์ผ๋ก ์ฎ๊ฒจ๋ n-1๊ฐ ๊ธฐ๋ฅ์ ๋ค์ ๋ชฉํ์์น๋ก ์ด๋
hanoi(n-1, mid, to, from);
}
}
๋์์ด ๋์ จ๋ค๋ฉด ์ข์์ ๋๋ฌ์ฃผ์ธ์๐
[์ฐธ๊ณ ์ฌ์ดํธ]
List -> Array : https://hianna.tistory.com/551
'๐๋ฌธ์ ํ์ด > ๐งฉProgrammers' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Python] ํ๋ก๊ทธ๋๋จธ์ค ์ฌํ๊ฒฝ๋ก | DFS (0) | 2024.09.21 |
---|---|
[Python] ํ๋ก๊ทธ๋๋จธ์ค ์ ํ์ ์๊ฐ ์ด๋ (0) | 2024.06.27 |
[Python] ํ๋ก๊ทธ๋๋จธ์ค ๊ดํธ ๋ณํ | DFS (0) | 2023.06.27 |
[Python] ํ๋ก๊ทธ๋๋จธ์ค ํผ๋ณด๋์น ์ | DP (0) | 2023.06.26 |
[Python] ํ๋ก๊ทธ๋๋จธ์ค ๋ค์ ํฐ ์ซ์ (0) | 2023.06.26 |