Scientia Conditorium

[책리뷰] 알고리즘 인사이드 with 파이썬 본문

서평/IT-책

[책리뷰] 알고리즘 인사이드 with 파이썬

크썸 2023. 11. 26. 01:23

[책리뷰] 알고리즘 인사이드 with 파이썬

 

전반적인 소감 및 마음에 드는 부분

알고리즘과 자료구조의 기본적인 내용을 소개하면서 이를 통해 코딩 문제 풀이를 설명한 책입니다. 첫번째 장점은 자료구와 알고리즘을 설명하는데 이해하기 쉽도록 최대한 많은 그림이 삽입되었다는 점입니다. 보통 2차원 배열이라던가 트리 구조에서 순회하는 알고리즘들은 동작 방식이 한번에 와닿지 않는 경우가 많습니다. 그런 부분을 최소화 시키고자 그림을 통해 동작 순서를 자세하게 설명해줍니다. 아래 사진은 그런 예시들 입니다.

 

두 번째 장점으로는 오랜 시간동안 개발해온 저자가 엄선한 leetcode 86문제 입니다. 자료구조와 알고리즘을 설명해주고 이를 코딩문제에 어떻게 적용하는지 보여줍니다. 문제를 해결한 코드를 한줄한줄 자세하게 설명해줍니다. 특이한 점이 있다면 성능 분석도 같이 한다는 것입니다. 해결한 코드의 시간복잡도가 어느 정도인지 간략하게 알려주고 있습니다. 
 

대상 독자 및 책 난이도

알고리즘과 자료구조 기본 개념을 다시 한번 정립하고 싶은 개발자들이 기본 대상이지만 초보자들도 충분히 쉽게 볼 수 있습니다. 이 책의 목적은 보다 많은 개발자가 빠르고 안정적이고 효율적인 알고리즘을 개발할 수 있는 역량을 갖추도록 돕는 것입니다. 더 뛰어난 개발 산출물을 작성하고 싶은 개발자, 자신의 역량을 한 단계 높이고 싶은 분들께 도움이 될 것입니다.
핵심 자료구조인 스택, 큐, 연결리스트, 해시, 맵, 트리, 힙, 그래프를 다룹니다. 기본 알고리즘으로 정렬, 재귀, 탐색, 공간, 순열과 조합, 배열, 검색, 트리 등을 다룹니다. 각 알고리즘 설명에서는 단계별로 그림들이 동작 순서를 알려주기 때문에 이해하기 쉽게 구성되어있습니다. 
 

마음에 들지 않은 부분

전 IT 개발 서적들 중에서 프로그래밍 언어 기본을 다루는 책들을 제외하고 기본 문법으로 한 챕터를 잡아먹는 걸 극도로 싫어합니다. 예를 들어보겠습니다. 이 책의 핵심 주제는 자료구와 알고리즘 입니다. 자료구조와 알고리즘에 관심이 있는 사람들이 찾는 책이지 프로그래밍 기본 문법을 공부하려고 선택하는 책이 아닙니다. 즉 기본 문법을 설명하는 챕터가 있을 필요가 없다는 뜻입니다.
만약 설명하다가 기본 문법에 대한 설명이 필요하다고 하면 팁박스 혹은 주석으로 달아두면 됩니다. 이 부분 역시 예를 들어보겠습니다.

양쪽 모두 리스트에서 원소 접근법을 설명하는데 왼쪽은 챕터1의 기본 문법에서 오른쪽은 원형 큐 자료구조 설명하다고 나온 내용입니다. 동일한 내용을 2번이나 설명하고 있습니다. 기본 문법 책도 아닌데 왼쪽 페이지는 있을 필요가 없습니다. 오른쪽처럼 가볍게 설명하고 넘어가면 됩니다. 게다가 코루틴, 상속, 멀티 프로세싱과 챕터2 정규표현식은 왜 있는지 도저히 모르겠습니다. 설마 뒤쪽에 코루틴을 이용하여 알고리즘 구현하는게 있나 싶었지만 그렇지도 않습니다. 챕터1,2 합해서 약 40페이지는 쓸데없이 지면만 차지하여 책 값만 높이고 있습니다. 
 

결론

별로 추천하지 않습니다. 알고리즘을 적용하여 코딩 문제를 어떻게 풀어야하는지 궁금하시다면 '이것이 코딩테스트다 - 나동빈' 책을 추천드립니다. 자료구조와 알고리즘의 근본 동작이 궁금하다면 '이것이 자료구조+알고리즘이다 - 박상현' 책을 추천드립니다. 그러나 위 2권의 책을 사기는 부담스럽다라고 하신다면 이 책을 보시는 것도 괜찮습니다. 혹 파이썬으로 자세하게 설명해주는 자료구조+알고리즘+코딩테스트 책이 필요하시다면 볼만합니다. 차라리 챕터 1-4까지 없애버리고 'leetcode 86개 문제로 보는 자료구조와 알고리즘' 이라고 제목을 지었으면 어땠을까 합니다. 그러면 약 200페이지가 줄어들게 되니 훨씬 더 효율적이지 않을까하는 생각입니다. 
 
 "한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다."