박준호
가입: 2012년 9월 15일 올린 글: 71
|
올려짐: 2012년10월1일 17:41 주제: room list와 room set은 완전히 다른 자료구조라고 보시면 됩니다 |
|
|
room list는 room들을 모은 우리가 아는 car과 cdr이 되는 list이고,
set은 우리가 보는 집합 같은 기능을 하고 있다고 보면 됩니다
(함수를 보면 대충 알수 있어요. 공집합, 원소가 집합안에 있는지, 부분집합인지)
set에 관해서는 3-2 문제에서 정의된 함수만 쓸 수 있고
(그러니까, 셋에서 원소를 뺄수도 없고, 셋에서 어떤 원소를 찾을수도 없음)
maze는 room list도, room set도 아닌 완전히 다른 형식의 자료구조라고 생각하고
코딩하셔야 해요. interface에서 data type이 다른 이상 '설사 내부구조가 맞아서 이걸 list라고 생각할 수 있다 해도' 사용하시면 안되겠죠.
-------------------------------------------------------------------------------------
지금 타입으로 코딩하는 이유가, 예를 들어서 어떤 서치 알고리즘1이 있어서 그걸
인터페이스만 가지고 구현을 했다면, 나중에 더 좋은(속도가 더 빠른) 알고리즘이 나왔을때, 같은 인터페이스를 가진 알고리즘 2를 그냥 알고리즘1 대신에 끼워넣으면 되지만, 인터페이스와 무관하게 내부구조에 관여하는 코딩을 하면 알고리즘도 바꾸고 메인코드도 싹 고쳐야 하는 문제가 있거덩요.
사실 내부구조를 알고있어서 그렇게 짜면 당장은 돌아가긴하지만 호환성이낮겠죠
이 과제의 경우에는, 틀린게 될거구요 |
|