본문 바로가기

DATA SCIENCE/Review

[Monthly Reading] 알고리즘 인사이드 with 파이썬

 

알고리즘 인사이드 with 파이썬

범용성 높은 프로그래밍 언어인 파이썬을 활용해 코딩 테스트에 자주 등장하는 문제 유형 86개를 풀이하는 과정을 살펴본다. 17년 차 S/W 아키텍트이자 개발자인 저자가 알려 주는 실무에도 유용

www.aladin.co.kr

 

한 줄 평 ★★★★★

알고리즘 입문서를 위한 모든 요소를 골고루, 충분히 갖췄다.

 

 

구성 및 평가

이전에 알고리즘 입문서를 추천한 적이 있었다.

 

Monthly Book Review 12 : 알고리즘 공부하는 이들을 위한 필독서 2권

https://www.aladin.co.kr/shop/wproduct.aspx?ItemId=294848641 똑똑한 코드 작성을 위한 실전 알고리즘 소프트웨어 개발에서 가장 많이 활용되는 핵심 알고리즘을 각각 언제, 어떻게 사용하면 좋은지 단계별로

thebeworld.tistory.com

위 게시물을 작성할 때, 그리고 현직 개발자이자 간혹 강사로서의 일을 하는 입장에서 봤을 때 알고리즘 입문서에 가장 중요하다 생각한 부분은 두 가지였다.

 

1. 자료구조에 대한 충분한 설명과 실습
2. 실제 문제를 풀어볼 수 있는 특정 서비스와 연계된 문제

 

 

만일 대부분의 자료구조형에 대해 알고 있다면(그 기능과 특징에 대해 명확히 모르더라도), 문제를 풀면서 익히거나 chatGPT를 통해 익히는 게 더 편할 수 있다. 하지만 만약 내가 입문자라면 첫 번째로 어떤 자료형이 있고, 그 자료형의 특징은 무엇인지 자세히 배워볼 필요가 있다.

 

두 번째로 이렇게 익힌 자료구조를 이용해 알고리즘 문제를 풀어보며 실력을 성숙하게 만들어야 하는데, 이 과정에서 실제 우리가 웹을 통해 접근할 수 있는 페이지에서 문제를 풀어보고 제출해보며 문제를 풀어보고, 이렇게 누적된 결과물(본인의 티어)을 하나의 포트폴리오로 사용할 수 있어야 한다. 티어가 올라감에 따른 충족감은 덤이다.

 

특히 두 번째가 매우 중요한데, 결국 이러한 입문서를 보는 가장 큰 목적은 취업을 위해서이고, 혹시나 있을지 모르는 코딩테스트와 이후의 실무를 대비하기 위함이기도 하지만, 이를 공부한 노력만으로도 서류평가에서 긍정적인 평가를 얻을 수 있다면 더할 나위 없다.

 

[알고리즘 인사이드 with 파이썬]은 전체가 600페이지가 조금 넘는 꽤나 긴 분량을 지니고 있으면서 그 중 1/3 정도에 해당하는 200페이지 정도가 자료구조에 대해 자세히 설명하고 있는데, 최근 문제 위주로만 무작정 풀어내는 알고리즘 서적이 많아지는 가운데 빛과 소금같은 서적이 아닐까 싶다.

 

나머지 400페이지를 통해서는 리트코드 페이지에 올라가있는 문제를 직접 제출해보며 풀 수 있는데, 굳이 굳이(일부러 두 번 썼다) 단점을 꼽자면 이곳에 단점이 존재한다. 사실 이건 만일 학부생이나 대학원생이라면 큰 문제가 되지 않을 수도 있는 것인데, 바로 실습을 위한 웹 서비스가 '리트코드'라는 곳이다.

 

우리는 코딩테스트 준비를 위해 여러 서비스를 이용할 수 있는데, 리트코드의 경우 굉장히 많은 문제와 유형을 풀어볼 수 있다는 장점이 있지만 실제 문제를 푸는 환경이나 문제를 서술하는 방식이 실제 문제풀이와는 다소 다르다는 단점이 있다. (또한 본인의 영어실력이 다소 부족하다면 입문자임에도 문제를 읽고 이해하는데에만 한 세월이 걸릴 수도 있다! 만약 영어실력이 문제라면 한국의 비슷한 서비스로 '백준 알고리즘' 이 있으니 여길 참조하자.)

 

만약 실전과 같은 형태로 연습을 하고 싶다면 한국의 프로그래머스나 codility 서비스를 잘 활용하면 좋다. 사실 이러한 단점도 차피 입문자의 입장에선 결국 실제 문제를 풀어보는 경험 자체가 중요한 것이어서 결코 단점이 아니며, codility나 프로그래머스에서도 티어 시스템 같은 개념이 있지만 이를 이력서에 쓴다고 해서 별로 인정받는 느낌은 아니다. 오히려 알고리즘이나 자료구조형에 대한 능력을 소개하기 위해 "리트코드 혹은 백준 플레티넘이다"라고 설명하는게 더욱 직관적으로 잘 와닿는다. (대부분의 공과대학에서 이 페이지들을 활용하기에 더욱 체감이 잘되는 것 같다.)

 

정리하면 초심자를 위해 좋은 컨텐츠들을 잘 구성했고, 서술 방식 또한 이해하기 쉽게 설명했다. 다만 초심자의 경우 각 자료구조형을 설명한 파이썬 코드가 다소 어려울 수 있는데, 잘 이해가 안간다면 개념을 코드로 구현했다 정도로만 보고 넘어가도 좋을 것 같다.

 

 

  "한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다."