프로그래머스 LEVEL 2(하노이의 탑)

image

  • 사용 언어 : javascript

  • 해결 날짜 : 2022-10-01

  • 해결 방법 :
    • n개의 원반을 1번에서 3번으로 옮기기 위해 재귀로 구현
    • n이 1보다 큰 경우 hanoi(n - 1, from, stopover, to) + 이동 + hanoi(n - 1, stopover, to, from)
    • n이 1인 경우 이동 후 종료
  • 회고 :
    • x
  • 코드

    function solution(n) {
        const answer = [];
            
        const hanoi = (n, from, to, stopover) => {
            if (n === 1) {
                answer.push([from, to]);
                return;
            } else {
                hanoi(n - 1, from, stopover, to);
                answer.push([from, to]);
                hanoi(n - 1, stopover, to, from);
            }
        }
        hanoi(n, 1, 3, 2);
            
        return answer;
    }
    
  • 출처: 프로그래머스 코딩 테스트 연습, https://school.programmers.co.kr/learn/challenges