YJ_Scribbles

#A04_하노이 탑(Tower of Honoi) 본문

이론_전공/알고리즘

#A04_하노이 탑(Tower of Honoi)

오뀨기 2020. 9. 13. 02:15

★ 하노이탑이란?

 - 한 번에 하나의 원판만 옮길 수 있음

 - 큰 원판이 작은 원판 위에 있어서는 안됨

 - 재귀함수를 이용해서만 코드작성 가능

 

 

 

▶ 알고리즘

<하노이탑 알고리즘>

 

 

 

★ 만들고자 하는 프로그램

<만들고자 하는 프로그램>

- 그래픽으로 하는 구현은 다소 어려움이 있어 콘솔 프로그램으로 제작할 예정

 

 

1. 새 프로젝트 만들기

   - [솔루션 위에서 마우스오른쪽 → 추가 → 새 프로젝트 → C# 콘솔 앱]을 눌러 새로운 프로젝트 추가

 

 

 

2. 코딩하기

   1) main함수에 Hanoi(4, 'A', 'C', 'B); 작성

   2) Hanoi함수 만들기

    Hanoi(4, 'A', 'C', 'B);에 마우스를 갖다대면 전구모양의 아이콘이 생김 → 전구모양 아이콘 클릭 → 메서드 생성 클릭

 

 

   3) Hanoi함수 입력하기

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);
            }
        }

 

<작성완료된 코드>

 

 

 

3. 실행하기

   - ctrl + F5를 눌러 실행

 

위의 사진과 같이 실행되는 것을 알 수 있다.