코로나로.. 모임 4인 제한이 걸려서 스터디 마지막에 들어간 나는 집에서 따로 알고리즘을 풀었다. 하노이의 탑은 5분만에 이해한 것 같다. 에? 이렇게 하면 되잖아 했더니 한 번에 1장만 이동 가능했고, 에? 그럼 이렇게 하면 되잖아 했더니 작은 원반 위에 큰 원반을 쌓을 수 없었다. 그 다음에 풀었더니 정답. 7번의 순서가 최단 경로였다. 풀면서 영화 혹성탈출의 시저가 된 것 같은 기분이 든 건 나 혼자 뿐이었을까..
진짜 머리아픈 건 하노이의 탑을 코드로 구현하면서부터였다. 재귀함수의 예로 유명한 하노이의 탑..
function hanoi(n){
const answer = [];
function frisbee(n, x, y){
const z = 6-x-y;
if(n===1) answer.push([x,y]);
else {
frisbee(n-1, x, z);
answer.push([x,y]);
frisbee(n-1,z,y);
}
frisbee(n,1,3);
return answer;
}
}
구글링을 해봤을 때 이해에 도움이 되었던 블로그(아래 첨부)가 있었다. 우선 하노이의 탑 코드를 이해하기 위해서는 다음과 같은 이해가 먼저였다.
하노이의 탑 코드화에 도움이 되었던 블로그
https://splendidlolli.tistory.com/344