하노이탑은 두 가지의 규칙이 있다.
1. 한 번에 하나의 원판만 옮길 수 있다.
2. 큰 원판이 작은 원판 위에 있어서는 안 된다.
이 두 가지의 규칙을 가지고 하노이탑 코드를 짜보았다.
※ 그래픽으로 표현하기 어렵기에 콘솔로 만들었다.
using System;
// hanoi tower - recursive function
namespace A004_hanoi
{
class Program
{
static void Main(string[] args)
{
Hanoi(100, 'A', 'C', 'B'); // A에서 B를 이용해 C로 간다
}
private static void Hanoi(int n, char from, char to, char by)
{
if(n==1)
Console.WriteLine("Move : {0} -> {1}", from, to);
else
{
Hanoi(n - 1, from, by, to);
Console.WriteLine("Move : {0} -> {1}", from, to);
Hanoi(n - 1, by, to, from);
}
}
}
}
다음은 실행화면이다.
'Algorithms' 카테고리의 다른 글
A006_ClosestPair (0) | 2021.10.12 |
---|---|
A005_SortWithGraph (0) | 2021.09.24 |
A003_fibo (0) | 2021.09.17 |
A002_Factorial (0) | 2021.09.17 |
A001_Euclid (0) | 2021.09.16 |