하노이 타워 [C++ 소스]
"본문 내용"은 언제나 휴일 본 사이트에 있습니다.
//하노이 타워
#include <iostream>
#include <string>
using namespace std;
void Hanoi(string src, string use, string dest, int n)
{
if(n<=0) //돌이 없을 때
{
return;
}
Hanoi(src,dest,use,n-1); //n-1 개의 돌을 src에서 dest를 이용하여 use로 이동
cout<<"move "<<src<<" -> "<<dest<<endl; //scr에서 dest로 이동
Hanoi(use,src,dest,n-1); //n-1개의 돌을 use에서 src를 이용하여 dest로 이둉
}
int main()
{
Hanoi("a","b","c",3);
return 0;
}
▷ 실행 결과
move a -> c
move a -> b
move c -> b
move a -> c
move b -> a
move b -> c
move a -> c
//하노이 타워 성능 측정
#include <iostream>
#include <string>
#include <time.h>
using namespace std;
void Hanoi(string src, string use, string dest, int n)
{
if(n<=0) //돌이 없을 때
{
return;
}
Hanoi(src,dest,use,n-1); //n-1 개의 돌을 src에서 dest를 이용하여 use로 이동
cout<<"move "<<src<<" -> "<<dest<<endl; //scr에서 dest로 이동
Hanoi(use,src,dest,n-1); //n-1개의 돌을 use에서 src를 이용하여 dest로 이둉
}
int main()
{
clock_t st,et;
st = clock();
Hanoi("a","b","c",5);
et = clock();
cout<<"5 개일 때 걸린 시간:"<<et-st<<endl;
st = clock();
Hanoi("a","b","c",8);
et = clock();
cout<<"8 개일 때 걸린 시간:"<<et-st<<endl;
return 0;
}
▷ 실행 결과
move a -> c
...중략...
move a -> c
5 개일 때 걸린 시간:44
move a -> b
...중략...
move b -> c
8 개일 때 걸린
시간:364
프로그래밍 언어 및 기술 학습, 무료 동영상 강의 언제나 휴일
'C++ > 디딤돌 자료구조와 알고리즘 with C++' 카테고리의 다른 글
순차 탐색과 이진 탐색 알고리즘 성능 비교 [C++소스] (0) | 2016.06.11 |
---|---|
퀵 정렬 (Quick Sort) 알고리즘 [C++ 소스] (0) | 2016.06.11 |
STL list 흉내내서 만들기 [C++] (0) | 2016.06.11 |
STL vector 흉내내서 만들기 [C++] (0) | 2016.06.11 |
라운드 로빈 스케쥴러 시뮬레이션 [C++] (0) | 2016.06.11 |