|
ABOUT
이글루 파인더
카테고리
이전 블로그
이글루 링크
폭력 어덜트레인저 우주모함
요즘 뭐하고 사니 이 세상에서 사랑보다 .. 군생활을 마치고 새사람.. OverHeats! Aftermath . . . 지오의 일기장 시무이의 바로크니토 홀.. † dream of dark star † 최근 등록된 덧글
음....우리집에서 못 ..
by Sylphid。 at 07/28 Sylphid。// 바이바이라.. by Utedier at 07/26 아 그리고 난 말년 아마도 .. by Adagio at 07/21 Hi~long time no see .. by Sylphid。 at 07/21 난 그냥 지루한데 군생활.. by Adagio at 07/17 하하하 말년 나온 린느다... by Lianne at 07/16 비공개 // 답글 이제 달아.. by Utedier at 07/12 -_-;;; 나 4월 5,6일 외.. by Adagio at 04/04 나왔으면 엠에센에 들어.. by 시무이 at 04/04 4월4일이라...ㅋ~이.. by Sylphid。 at 04/03 최근 등록된 트랙백
모리야마 다이스케- 월드..
by 시무이의 바로크니토 홀.. 이름 문답 by OverHeats! 지인문답 by 시무이의 새벽이 머무는.. 모에테스트-당신의 연.. by 스트레인지 데이스 모에 적성검사 by 시무이의 얼어붙은 영지(.. 당신은 어떤 블로거인가? by 시무이의 얼어붙은 영지(.. 나는 어떤 블로거인가? ... by OverHeats! 에고그램 테스트 by OverHeats! 나도 바탕화면 by OverHeats! 별세계
Feymoon Enclave 드림하트 커뮤니티 道德健全 퀸오하 사랑모임 마비노기 캐릭터 시뮬 마비노기 전투력 시뮬 B.G.M off 英雄傳說 VI '空の軌跡' SC OST Shine of Eidos ~Sora no Kiseki~ 비밀게시판 |
2007년 03월 14일
〃Posted title : 자료구조 - Hanoi Tower
#include <stdio.h> void main() { while (true) { int nCtr; printf("Input # of disk: "); scanf("%d", &nCtr); // 옮기는 탑의 층을 입력 받는다. if (nCtr <= 0) break; void Hanoi(int nDisk, int nFrom, int nTo); printf("%d storied tower\n", nCtr); Hanoi(nCtr, 1, 2); // 1에서 2로 탑을 옮긴다. } } void Hanoi(int nDisk, int nFrom, int nTo) { int temp = 6 - (nFrom + nTo); if (nDisk == 0) return; Hanoi(nDisk-1, nFrom, temp); printf(" %d --> %d \n", nFrom, nTo); Hanoi(nDisk-1, temp, nTo); } 수학적으로도 유명한 하노이의 타워 문제. 1학년 C언어 강의때 어려워서 안한다길래 와~ 하고 좋아했었는데, 결국 자료구조 시간에 만났다. 하노이 타워 프로그래밍의 기본 원리는 다음과 같다. Q. n개의 탑을 nTo로 옮겨라 1. n-1개 탑을 nFrom -> temp 2. 1개의 탑을 nFrom -> nTo 3. n-1개 탑을 temp -> nTo n개의 탑을 옮겨야 하므로 재귀함수를 이용. 그리하여 결과물이 저것. 문제는... 교수님은 Hanoi 함수부분이 4줄이어야 정상이고, 5줄이면 약간 부족한 것이라고 하셨다. 근데 저건 줄이고 줄여서 5줄 -_-;; 개선방향을 모르겠다. 밑에 3줄은 필히 필요하고... if문도 무한루프를 막기위해 필요한데... 그렇다고 temp를 쓰지않는건 왠지 지저분하고. 게다가 정작 중요한건 프로그램의 흐름, 즉 알고리즘이 머리속에서 안돌아간다. 책을 베끼거나 참고한 것도 없는데 소스를 성공적으로 짠 것이 어이없을 따름. 과제 제출까지는 4일정도 남았으니 더 고민해봐야겠다. |
|||