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;
}
'‡ CODING TEST STUDY ‡ > º 백준' 카테고리의 다른 글
[백준 2447번 C++] 별 찍기 - 10 (0) | 2023.09.21 |
---|---|
[백준 2630번 C++] 색종이 만들기 (0) | 2023.09.21 |
[백준 1914번 C++] 하노이 탑 (0) | 2023.09.21 |
[백준 17478번 C++] 재귀함수가 뭔가요? (1) | 2023.09.21 |
[백준 10870번 C++] 피보나치 수 5 (1) | 2023.09.20 |