본문 바로가기

코딩 테스트

백준 - 11729 하노이의 탑

재귀 너무 어렵다.. Dp 함수 자체를 이해하는 과정과 n==1 일 때 이해가 어려웠다.

 

n == 1 일 때는 마지막 하나남은 가장 작은 원판이 to 로 도착함을 의미한다.

 

 

#include <iostream>
#include <vector>
#include <queue>
#include <map>

using namespace std;

int answer = 1;

void Dp(int n , int from, int by, int to)
{
	if (n == 1)
	{
		cout << from << " " << to << "\n";
		return;
	}

	Dp(n - 1, from, to, by);
	cout << from << " " << to << "\n";
	Dp(n - 1, by, from, to);

}

int main(void)
{

	ios_base::sync_with_stdio(false);
	cin.tie(0);	cout.tie(0);

	int n;
	cin >> n;

	int from = 1;
	int by = 2;
	int target = 3;

	

	for (int i = 1; i <= n; ++i)
	{
		answer *= 2;
	}

	cout << answer - 1 << endl;

	Dp(n, from, by, target);



	return 0;
}

'코딩 테스트' 카테고리의 다른 글

백준 - 14400 편의점 2  (0) 2024.09.03
백준 - 1541 잃어버린 괄호  (0) 2024.09.03
백준 - 14502 연구소  (0) 2024.08.27
백준 - 7576 토마토  (0) 2024.08.26
백준 - 1926 그림  (0) 2024.08.26