알고리즘

[백준/재귀/C++] 11729번 하노이 탑 이동 순서

데메즈 2023. 1. 5. 13:19
728x90
반응형

https://www.acmicpc.net/problem/11729

 

11729번: 하노이 탑 이동 순서

세 개의 장대가 있고 첫 번째 장대에는 반경이 서로 다른 n개의 원판이 쌓여 있다. 각 원판은 반경이 큰 순서대로 쌓여있다. 이제 수도승들이 다음 규칙에 따라 첫 번째 장대에서 세 번째 장대로

www.acmicpc.net

문제 해결방법은 위와같다

#include <bits/stdc++.h>

using namespace std;

int n;

void Hanoi(int n, int start, int mid, int end){ // 시작 보조 목표
    if(n==1){
        cout << start << ' ' << end << '\n';
        return;
    } else {
        Hanoi(n-1, start, end, mid);
        cout << start << ' ' << end << '\n';
        Hanoi(n-1, mid, start, end);
    }
}

int main(void) {
    ios::sync_with_stdio(0);
    cin.tie(0);

    cin >> n;

    cout << (int)pow(2,n)-1 << '\n';
    Hanoi(n, 1, 2, 3);

    return 0;
}
728x90
반응형