본문 바로가기
Co-Study/JS 스터디 2021 ✔️

[JS 스터디 1기] - hanoi 함수 구현 코드

by Aaron-Kim 2021. 12. 19.
// hanoi 함수 구현

// 시간 복잡도: O(2^n)
// 공간 복잡도: O(1), 재귀 호출 스택 고려 -> O(2^n)

let steps = 0;

function hanoiRecursive(n, src, des, tem) {
  if (n > 0) {
    hanoiRecursive(n - 1, src, tem, des);
    hanoiMove(n, src, des);
    hanoiRecursive(n - 1, tem, des, src);
  }
}

function hanoiMove(disc, src, des) {
  steps += 1;
  console.log(`disc ${disc}: ${src} -> ${des}`);
}

hanoiRecursive(3, 'A', 'C', 'B');
console.log(`Total Steps: ${steps}`);

 

반응형

댓글