티스토리 뷰

Algorithm/BOJ

백준 1914번 C++

poopooreum 2023. 7. 30. 19:07
반응형
백준 1914번 하노이 탑

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

1914번: 하노이 탑

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

www.acmicpc.net


정답 코드

#include <iostream>
#include <cstdio>
#include <cmath>
#include <string>

using namespace std;

void HanoiTower(int num, int from, int by, int to)
{
	if (num == 1) printf("%d %d\n", from, to);
	else
	{
		HanoiTower(num - 1, from, to, by);
		printf("%d %d \n", from, to);
		HanoiTower(num - 1, by, from, to);
	}
}

int main(void)
{
	int N;
	cin >> N;

	string a = to_string(pow(2, N));

	int x = a.find('.');				
	a = a.substr(0, x);				
	a[a.length() - 1] -= 1;				

	cout << a << endl;

	if (N <= 20)
		HanoiTower(N, 1, 2, 3);

	return 0;
}


반응형

'Algorithm > BOJ' 카테고리의 다른 글

백준 1920번 C++  (0) 2023.08.02
백준 1916번 C++  (0) 2023.08.02
백준 1912번 C++  (0) 2023.07.30
백준 1904번 C++  (0) 2023.07.30
백준 1822번 C++  (0) 2023.07.30
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/07   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31
글 보관함