오답노트

프로그래머스 2단계 - 하노이의 탑 - 오답노트 본문

C,C++/코딩테스트

프로그래머스 2단계 - 하노이의 탑 - 오답노트

권멋져 2022. 6. 2. 18:14
https://programmers.co.kr/learn/courses/30/lessons/12946?language=cpp 
 

코딩테스트 연습 - 하노이의 탑

하노이 탑(Tower of Hanoi)은 퍼즐의 일종입니다. 세 개의 기둥과 이 기동에 꽂을 수 있는 크기가 다양한 원판들이 있고, 퍼즐을 시작하기 전에는 한 기둥에 원판들이 작은 것이 위에 있도록 순서대

programmers.co.kr

- 문제 파악

하노이의 탑 최소 이동의 경로를 출력하라

 

- 나의 접근

https://youtu.be/aPYE0anPZqI

하노이의 탑 영상으로 접근했는데 안됐다. 그런데 구글링해서 있는 답이랑 똑같다..

아마 return 조건때문에 그런거 같다..

하노이의 탑 뭔가 뚜렷하게 이해는 못한거 같다.

나중에 다시 풀어보자

 

#include "bits/stdc++.h"

using namespace std;

int num;
vector<vector<int>> answer;

void func(int n, int from, int to, int tmp){
    vector<int> temp = { from, to };
    if (n == 1) answer.push_back(temp);
    else{
        func(n-1, from, tmp, to);
        answer.push_back(temp);
        func(n-1, tmp, to, from);
    }
}

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

}