‡ CODING TEST STUDY ‡/º 백준

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

Trudy | 송연 2023. 9. 21. 16:37

11729번: 하노이 탑 이동 순서 (acmicpc.net)

 

11729번: 하노이 탑 이동 순서

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

www.acmicpc.net


전 문제랑 거의 유사한 데 입력 값 N의 범위만 작은 거구나

전 문제가 심화 버전이네

기본적인 하노이 탑 코드로 바꿔주니까 맞았음

#include <iostream>
#include <cmath>

using namespace std;

void hanoi(int n, int start, int mid, int end){
    if(n == 1) {
        cout << start << " " << end << "\n";
        return;
    }
    hanoi(n-1, start, end, mid);
    cout << start << " " << end << "\n";
    hanoi(n-1, mid, start, end);
    
}

int main()
{
    int n;
    cin >> n;
    
    
    cout << int(pow(2, n))-1 << "\n";
    
    hanoi(n, 1, 2 , 3);
    
    return 0;
}