eaz_coding

[Programmers] 하노이의 탑(Python, Javascript) 본문

eaz_algorithm

[Programmers] 하노이의 탑(Python, Javascript)

eaz_silver 2024. 6. 21. 14:56

문제

https://school.programmers.co.kr/learn/courses/30/lessons/12946

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr


풀이

Python

def solution(n):
    answer = []
    
    def hanoi(k, fr, to, ot):
        nonlocal answer
        
        if k == 1:
            answer.append([fr, to])
            return
            
        hanoi(k-1, fr, ot, to)
        answer.append([fr, to])
        hanoi(k-1, ot, to, fr)
        
    hanoi(n, 1, 3, 2)
        
    return answer

 

Javascript

let answer;
function hanoi(k, fr, to, ot){
    if (k == 1){
        answer.push([fr, to]);
        return;
    }

    hanoi(k-1, fr, ot, to);
    answer.push([fr, to]);
    hanoi(k-1, ot, to, fr);
}

function solution(n) {
    answer = [];
    
    hanoi(n, 1, 3, 2);
    return answer;
}