cjw1***
2020-09-26

IT 취준생이라면 누구나 가고 싶어 하는 카카오, 라인, 삼성전자의 2016년부터 2020년까지의 코딩 테스트와 알고리즘 대회의 기출문제를 엄선하여 수록하였다.
사실 9월의 리뷰는 그냥 넘어가려고 했다.
국비지원 학원의 파이널 프로젝트를 주도하고 있고, 코딩 테스트를 위한 알고리즘 공부를 병행하려니 시간이 나지 않아서다. 그런데 구독하고 있는 나동빈님의 유튜브 채널에 알고리즘 책을 낸다는 소식이 올라왔고, '이것이'를 보자마자 리뷰 도서를 확인했더니 역시나 있었다. 신나서 신청했고 이것이 MariaDB다, 이것이 안드로이드다 with 코틀린 다음으로 세번째 '이것이' 시리즈를 얻게 되었다.
서문을 길게 쓰는 성격이 아닌데 나도 모르게 신이 났다. 안경잡이 개발자라는 닉네임으로 활동 중이신 나동빈님의 강의 영상과 잘 정리해 둔 블로그 포스팅을 보며 많은 도움을 받았고, 파이썬으로 PS를 시작하게 된 계기도 동빈님의 영향이 컸기 때문이다.
이미 알고리즘 관련 오픈톡방에서는 '동빈북'이라 불리며 괜찮은 책이라는 호평을 받고 있다.
책 좋습니다
책의 내용은 정말 효율적이다. 기본 개념부터 시작해서 그리디, 구현, DFS/BFS, 다이나믹 프로그래밍 등 알고리즘 문제 풀이에 필요한 개념들을 이해하기 좋게 설명한다. 파이썬 코드 외에도 C++, Java 코드를 제공해 주니 해당 언어로 풀어볼 때도 많은 도움이 된다.
사실 개념을 잘 정리한 글은 이미 많지만 이 책의 진정한 장점은 서문에서 저자가 말하듯 초보 코더를 잘 이끌어 준다는 점에 있다. 쉽게 말해 삽질을 덜 하게 해 준다는 말이다. 나는 모르는 것이라면 맨땅에 헤딩부터 해보는 성격인데, 그 과정에 시간 낭비를 꽤나 많이 했었다. 그런데 이 책의 설명을 보고 알고리즘 풀이를 시작하면 효율적으로 문제를 푸는 습관을 몸에 잘 들일 수 있을 것이라는 생각을 했다. 좀 억울할 정도다. 이런 책을 빨리 좀 찾아 볼걸...
지나치게 취업을 위한 문제 풀이에만 치중되었느냐 하면 그것도 아닌 것이, 개념 부분이 정말 탄탄하게 준비되어 있다. 이 책만 떼도 웬만한 알고리즘 풀이에 대한 개념은 잡힐 것이라 생각할 정도다.
한 문제를 풀더라도 보다 효율적인 방식이 있는지 다른 코드를 보여준다. 최근에야 시간 복잡도와 공간 복잡도를 고려하게 되었는데 이 책은 가장 첫 번째 문제풀이 챕터에서 이미 시간 복잡도를 고려해 준다.
단순하게 풀면 이런 코드고, 많은 양의 input이 들어올 경우에는 이렇게 푸는게 효율적이다 - 이런 식으로 설명해 주는 것이다. 단순하게 푼 코드를 그대로 생각했어서 뭔가 찔렸다. 효율적으로 구상하는 부분을 보강해야 할 듯 싶다.
아쉬운 점
책 정말 좋다. 그런데 아쉬운 점은 내 나름대로 다르게 풀어 본 코드가 있더라도 채점을 못 해 본다는 것이다. 테스트 케이스만 돌려 보려 해도 동빈님의 깃허브에 테스트 케이스 코드가 없어서 일일이 따라 쳐야 한다는 점도 불편하다.
테스트 케이스만이라도 소스코드 아래에 주석으로 첨부되어 있으면 좋을 것 같다는 생각을 했다.
+) 책에 나와 있는 문제의 코드 아래에 백준 온라인 저지와 같은 채점 가능한 사이트의 유사한 문제를 소개해 줘도 좋을 것 같다는 생각도 했다. 동빈님 혼자서 찾으면 너무 힘드니 독자들이 기여하는 방식으로... 그래도 확인해야 하니 너무 노가다인가?
이것이 취업을 위한 코딩 테스트다 with 파이썬 Github : https://github.com/ndb796/python-for-coding-test