최대 1 분 소요

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

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

갑자기 AI 께서 재귀 기초 문제를 던져주었다
요새 문제를 잘 못 풀어서 그런지
‘너 이 문제는 풀 수 있지?’ 같은 느낌이다…

자세한 풀이법은 이전에 풀어둔 부분이 있어 링크로 대체한다
(https://hnjog.github.io/%ED%81%AC%EB%9E%98%ED%94%84%ED%86%A4%20%EC%A0%95%EA%B8%80/Week1_Hanoi/)

그래도 몇 달 전에 푼것인데 풀이법이 바로 기억나서
쉽게 풀었다

Code

#include <vector>

using namespace std;

void hanoi(int start, int to, int via,int n, vector<vector<int>>& answer)
{
    if (n <= 0)
        return;

    hanoi(start, via, to, n - 1, answer);
    answer.push_back({ start,to });
    hanoi(via, to, start, n - 1, answer);
}

vector<vector<int>> solution(int n) {
    vector<vector<int>> answer;
    
    hanoi(1, 3, 2, n, answer);

    return answer;
}

댓글남기기