----
때는 2003년 고등학생일 때 한참 정보올림피아드 대회에 관심을 갖던 시기였다. 인문계 고등학교에 다니는 이상 대입의 압박에서 자유로울 순 없었기에...
혼자 준비하기는 버거워 괜찮은 책을 사기 위해 대형 서점에 갔다. 관련 서적 코너에서 배회하던 중 내 눈길을 사로잡았던 이 책. "쉽게 배우는 실전 알고리즘 & 정보올림피아드 도전하기"
책을 대충 살펴보니 머리 쓰는 문제들을 많이 소개하고 그 문제를 푸는 과정과 방법에 대해서 설명한 책이었다.
그러니까 알고리즘이나 자료구조 같은 것들에 대해선 이미 지식이 있다고 가정을 하고, 그 지식을 실전에서 어떻게 써먹을 수 있나 하는 것을 직접 보여주는 책이라고 해야 할까? 나름대로 괜찮은 구성이라고 생각했다.
중요한 건 소개한 문제들의 난이도와 질이다. 차례에서 첫 번째 문제의 페이지를 찾기 위해 자세히 봤다.
"The 3n + 1 problem", "The Blocks Problem" ... 응? 어디서 많이 본 건데?
책에 문제가 "영문"과 "한글" 두 가지로 소개되어 있는데 영문으로 된 문제들의 제목을 본 순간 뭔가 번뜩이며 떠올랐다.
그 시절 난 ACM 문제 세트 사이트 에서 문제를 풀어보고, 그것을 올려 검증을 받아보는 취미가 있었다. 그런데 그 사이트에 올라와 있는 문제들을 그냥 그대로 책에 소개한 게 아닌가? 당시 야자도 제끼느라 바빴던 무늬만 고등학생이었던 난 영어로 된 문제들을 푸는 게 조금 힘들었기 때문에 그냥 "그 사이트 문제들의 번역본을 사는 셈 치자"라고 생각하며 책을 구입하곤 집으로 돌아왔다.
그리고... 집에서 자세히 읽어보고는 바로 후회했다.
다시한 번 말하지만 이 책은 알고리즘이나 자료구조에 대해 설명한 책이 아니다. 문제 풀이 과정에서 맛보기 식으로 살짝 소개할 때도 있긴 하지만, "문제와 그것을 푸는 방법"이 책의 메인 테마다. 그런데 그 문제를 푸는 과정 또한 썩 마음에 들지 않았고, 도출한 해답도 최적의 그것과는 거리가 좀 있는 것도 보였다. 그리고 결정적으로 예문으로 실린 코드의 코딩 스타일도 내 취향과는 안드로메다만큼 멀었다.
그래서... 처음 책을 살 때 "문제의 번역본으로 쓰자"라고 생각했던 것을 충실히 이행했다.
저 책의 가장 큰 문제점은 무엇보다 문제의 출처를 밝히지 않았던 데 있었던 것 아닌가 싶다. 책의 서문 등에서 책의 활용법과 좋은 점에 대해서만 장황하게 설명하면서, 그 책의 핵심을 이루는 문제는 다른데서 베껴왔다는 걸 왜 밝히지 않았을까? ( 직접 확인하고 싶은 사람은 여기를 클릭 해 보시라. )


댓글을 달아 주세요
댓글 RSS 주소 : http://sabjilstar.com/tt/rss/comment/20