이 책은 카페에서 우연히 댓글을 남기고 당첨되어서 읽게 된 책이다. (감사합니다.)
제목을 잘 살펴보면 '알고리즘 첫걸음'이다. 즉, 기본적인 개념을 쌓을 수 있으리라 추측되는데 본문을 읽고 나니 왜 첫걸음인지 알게 되었다.
흔히 그런 말이 있다.
'첫 단추를 잘 꿰어야 한다'
이 책은 파이썬 문법 기본을 공부한 후에 파이썬으로 알고리즘을 도전하기 전에 보면 가장 적합한 책이라고 생각된다. 바로 그 점에서 '첫걸음'이라는 제목이 적합한 것이다.
사실 알고리즘을 풀 때는 C++이 가장 널리 사용되는데 실제로 알고리즘풀이 사이트를 확인해 보면 파이썬이 굉장히 많이 쓰이는 것을 알 수 있다. 최근에 들어서 파이썬이 AI및 통계분석으로 각광을 받으며 사용자가 늘어난 것 뿐 아니라 알고리즘에도 파이썬이 적합한 언어라는 것을 깨달은 사람들이 파이썬으로 알고리즘을 구현해 나가기 시작했기 때문이다.
그런데 언어가 쉬워졌다고 해서 알고리즘이 쉬워진 것은 아니다. 이미 경험해 본 사람들도 있으리라 생각되지만, 언어에 자신감이 가진 상태로 곧바로 알고리즘문제를 마주하면 쉬운 문제 조차 엄청난 벽으로 느껴진다.
사실 한동안 프로그래밍 언어 문법과 알고리즘 문제의 벽 사이에 급격한 난이도를 완충시켜줄 가교 역할을 하는 것이 없을까 찾아 다녔는데 마침 이 책을 만났다. 이 책은 장담컨데 문법에서부터 기본적인 알고리즘 '사고'를 연결해 알고리즘 풀이의 기초 토대를 마련할 수 있다.
책은 총 6개의 장으로 구성되어 있는데 체감상
- 파이썬 기본 문법
- 기초 알고리즘 문제 적용 방법
- 복잡도를 고려한 여러 알고리즘 (리스트부터 정렬까지)
- 중상급 알고리즘
이렇게 나눠지는 것 같다.
아예 파이썬을 모르는 사람도 기본적인 파이썬 문법 개념을 쌓을 수 있는 내용이 1장에 나온다. 내용은 알고리즘을 푸는데 꼭 필요한 내용만 들어 있다. 광범위한 모듈같은 설명 없이 기본적인 조건문, 반복문, 함수, 클래스 등을 소개하고 적어도 책에 나온 내용만이라도 완벽히 숙지한다면 그 뒷장의 여러 알고리즘까지는 해석해 나갈 수 있다.
그리고 이 책만의 특장점인데, '순서도'가 나온다. 순서도에 대한 간략한 설명만 나온 게 아니라 모든 알고리즘 문제에 순서도를 같이 실어놓았다. 이게 굉장한 장점인데, 처음 알고리즘 문제의 풀이 코드를 접한 사람은 도통 이해하기 어렵다. 그래서 코드를 해석하는데 시간이 더 많이 소요되곤 한다. 이때 순서도를 통해 해당되는 코드부분을 파악해 나가면 시간이 엄청나게 절약된다. 이 부분은 나도 새삼 놀랐던 부분이라 굉장히 어려운 알고리즘을 마주하면 나도 순서도를 통해 코드 구조 개괄을 잡는 연습을 해볼 생각이다.
그리고 그 뒤부터 검색, 정렬, 최단경로, 벨만-포드, 다익스트라 등등 엄청나게 많은 알고리즘들이 나온다. 여기서부터는 솔직히 문법 기초만 공부한 사람에게는 어려울 수 있다고 생각된다. 개인적으로는 해당 알고리즘들을 예전에 공부한 적이 있었는데 다 까먹고 있었다. 그래서 오히려 해당 알고리즘이 반가웠다.
이 책은 정말 파이썬으로 알고리즘 풀이가 잘 나와있는데, 잊고있던 알고리즘 코드를 찾고자 다른 책들이랑 같이 비교해보면서 보았는데, 이 책에 나온 코드는 정말 심플하면서 '파이썬 특징'을 잘 살린 코드들로 풀이가 되어 있다. 흔히들 파이써닉하다는 표현을 쓰는 바로 그 코드들이다.
파이썬이라는 언어의 장점을 살린 풀이에 정말 만족했고, 순서도를 통해 코드를 '이해하는 지름길'을 만들어 놓은 것도 아주 만족스러운 책이다. 각 장이 끝날 때 마다 나름 귀여운 문제들이 몇 개 있고, 해당 문제의 '답'도 있다.
또, 책의 두께도 굉장히 얇아서 항시 들고 다니면서 알고리즘을 공부하다보면 어느샌가 그 높던 벽이 그저 야트막한 산책로 처럼 느껴지게 될 것이다.
'독서 > 서평' 카테고리의 다른 글
[아파트 값 5차 파동] 집값 파동의 역사를 통해 미래를 예측하자 (0) | 2022.05.23 |
---|---|
[빅데이터 저장 및 분석을 위한 Redis] 레디스를 위한 기초 교재 (0) | 2022.05.21 |
[프로그래밍 콘테스트 챌린징] 일명 노란책 (0) | 2022.05.19 |
[기후재앙을 피하는 법] 지금부터 미리미리 준비해야 할 기후대책 (0) | 2022.05.18 |
[자본주의 생존 공략집] 쉽게 풀어 쓴 자본주의 기본 원리 (0) | 2022.05.16 |