No Rules Rules

하노이 탑 (feat. 백준, 1914번) 본문

생활/코테

하노이 탑 (feat. 백준, 1914번)

개발하는 완두콩 2022. 11. 1. 12:34
728x90
반응형

하노이 탑
https://www.acmicpc.net/problem/1914

 

1914번: 하노이 탑

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

www.acmicpc.net

 

// woohyeon.kim
// kim519620.tistory.com
#include <iostream>
#include <string>
#include <cmath>
using namespace std;
void solution(int num, int from, int by, int to) {
	if (num == 1) {
		cout << from << " " << to << "\n";
	}
	else {
		solution(num - 1, from, to, by);
		cout << from << " " << to << "\n";
		solution(num - 1, by, from, to);
	}
}
int main() {
	ios::sync_with_stdio(false), cin.tie(NULL);
	register int N;
    cin >> N;
    string str = to_string(pow(2, N));
    str = str.substr(0, str.find('.'));     // pow 결과는 소수
    str.back() -= 1;                        // 2^N 결과에 0은 없음
    cout << str << "\n";
    if(N <= 20)
	    solution(N, 1, 2, 3);
	return 0;
}
// *&)*@*

 

반응형

아래와 동일한 문제입니다.

다만 하노이탑이 100개인 경우, 2^100 은 c++로 표현할 수 있는 정수형이 없으므로 string을 사용해야 합니다.

https://kim519620.tistory.com/entry/%ED%95%98%EB%85%B8%EC%9D%B4-%ED%83%91-%EC%9D%B4%EB%8F%99-%EC%88%9C%EC%84%9C-feat-%EB%B0%B1%EC%A4%80-11729%EB%B2%88

 

728x90
반응형
Comments