나경의 코드
const route = [];
function hanoi(num, start, end, temp){
//원판이 한 개일 때에는 바로 옮기면 됩니다.
if (num === 1) { //원반이 하나라면
route.push([start, end]); //루트에 [A, C] -> [[A, C]]
return NaN; //return NaN의 의미 : 유효한 연산이 아니어서 NaN 값을 통해 잘못된 결과임을 인식하고,
} //필요에 따라 이를 처리할 수 있도록 하는 것
//원반이 n-1개를 경유기둥으로 옮기고
hanoi(num-1, start, temp, end); //더 작은 값으로 자기 자신을 호출해서 n-1개의 원반을 경유 기둥으로 옮김 : 대체 여기서 어떻게 n-1개가 큰거부터 쌓이는데....????
//가장 큰 원반은 목표기둥으로
route.push([start, end]); //여기는 이해
//경유기둥과 시작기둥을 바꿉니다.
hanoi(num-1, temp, end, start); //실행순서가 hanoi(num-1, start, temp, end); 이걸 다 돌리고 여기로 넘어온다는데....
}
hanoi(3, 'A', 'B', 'C'); //3 : 원반개수, A : 시작기둥, B : 경유기둥, C : 목표기둥
console.log(route);
console.log(route.length);
JavaScript
복사
설명을 듣고 난 후
JavaScript
복사
ㅇㄹㅎㄹ
ㄹㄹㄹㅗㅗㅓㅓㅏ올오ㅓㄹ헉서늌ㅎㄴㄷㅎㄷ소