→ 한 번에 하나의 원반을 움직일 수 있다.

→ 가장 위에 있는 원반만 옮길 수 있다.

→ 아래에 작은 원반이 올 수 없다.

// count : 원반의 숫자
// from : 원반들이 처음에 꽂혀있는 기둥
// to : 원반들이 최종적으로 꽂힐 기둥
// temp : 원반들이 이동을 위해 일시적으로 사용되는 기둥
function hanoi(count, from, to, temp){
    if(count == 0) return;                          // 기저 조건
    hanoi(count - 1, from, temp, to);               // 2, A, B, C
    console.log(`${count} ${from} -> ${to}`);
    hanoi(count - 1, temp, to, from);               // 2, B, C, A
}

hanoi(3, "A", "C", "B");

Untitled