[자료구조_스택] 스택을 이용한 하노이의탑
내 글에서는 이론적인 내용의 자세한 설명은 하지 않는다.
난 전공이 컴공인데, 학부때도 이론자체는 좋아하지 않는다.
이론을 공부할때, 그것을 활용하여 어떤걸 구현할까..라는 생각만으로 이론을 공부한다.
그러면, 이론배울때 그나마 견디면서 공부할수 있는듯 ㅠㅠ
이론만 가지고 공부할려고하면 잘안된다.
그래서 그런지 난 학부수업때 이론수업을 너무나 싫어했다. 교실에서 책과 프로젝트빔만 -_-보기때문에....
난, 자료구조. 학부수업때 겨우 패쓰만 한 사람...앗. 자료구조는 그래도 B정돈 받은듯ㅎㅎㅎ
그치만 알고리즘은 D+이라는거. (재수강안했다. 진짜 패쓰만 할생각이었음)
다시 스택으로 돌아와서...
스택은 자료구조의 형태중 하나인데, 후입선출. - 마지막에 들어간게 먼저 나올수 있는 구조.
내가 가지고 있는 책이 자바스크립트 자료구조와 알고리즘 이라는 책.
- 책은 정말 얇다. 예제도 많이 나오지 않는다.
스택구조자체를 JS 클래스로 만들고,
이것을 활용하여 무엇을 할까 ? 하다가,
책에서 하노이의 탑을 마지막에 언급했다.
그래서 하노이의 탑이다. !!!
고등학교때 이산수학이라는 교과를 접했던 사람은 알수 있을 것이다.
거기에 나왔던걸로 기억한다 나는..
그래서 하노이의 탑을 구현하였다.
구현하고 처음버전은, 몇초인지 성공하였는지 알림도 없었다.
-_- 구현은 내가 했지만,
내가 풀지를 못하여서 울회사 팀사람들한테 돌리면서 풀어봐달라고 ㅋㅋㅋㅋㅋㅋㅋㅋ
사람들한테 돌리니까 요구사항도 나왔고, 오류도 나왔다.
오류는 생각보다 경미한 부분이라, 오류를 고치고.
요구사항은 아래와 같았다.
- 성공했을경우, 성취감들게 성공하셨습니다 하면서 뭔가 비쥬얼이 있었으면 좋겠다.
- 몇초만에 성공하였는지해서 경쟁하게 했으면 좋겠다.
- 몇초가 지나고 있는지 실시간으로 보였으면 좋겠다.
저기말고 다른 요구도 있었지만 저것까지만 수용하여 수정하였다.
http://code.d2.co.kr/d2_pb/tower_of_hanoi/hanoi.html
위에 주소는 회사 FTP에 올린것이고,
저거때문에 재미있게 한 2일동안 최고기록갱신할려고, 불을 킨거같다.
ㅋㅋㅋㅋㅋ아직까지 원반5개일때 최고기록은 16초.
-_-16초의 최고기록은 깨지를 못함.
내 최고기록은 19초였었음...
저 부분을 구현한 소스코드를 첨부한다.
스택만 클래스로 구현하고 나머진, 그냥 자바스크립트 함수로 구현하였다.
그리고 제이쿼리없이 자바스크립트로만 할려고 했기에, 아마 부족한게 많을수도.
일단 첨부하고 휘리릭 ~