티스토리 뷰

(해당 포스트에서 소개하고 있는 "파이썬으로 익히는 말랑말랑 알고리즘" 책은 BJ퍼블릭으로부터 제공받았음을 알려드립니다.)

 

파이썬으로 익히는 말랑말랑 알고리즘

파이썬으로 익히는 말랑말랑 알고리즘 부제 차근차근 설명하고 막힘없이 이해하는 알고리즘 저자 김경록 출판사 비제이퍼블릭 출간/배본가능일 2022년 01월 26일 정가 30,000원 페이지 448쪽 판형

bjpublic.tistory.com

아마 IT회사 취업을 목표로 하는 사람이라면 누구든 코딩 테스트에 대한 준비를 할 것이다. 흔히 네카라쿠배 라고 하는 상위 IT기업들만 하더라도 입사를 위해서는 코딩테스트나 코딩 과제를 제출해야하고, 이를 준비하는 교육 과정과 책들이 시중에도 많이 나와있다. IT 게시판같은 것을 살펴보면 이 코딩테스트의 필요성에 대해서 의견을 주고받는 내용들이 있는데, 코딩테스트에서 다뤄지는 알고리즘이 실제로도 사용되느냐에 대해서 의견이 분분하지만, 그래도 이런 테스트를 통해서 현업에서 필요한 사람을 뽑을 수 있다는 것에 대해서는 의견이 일치하는 것 같다. 정상적으로 SW를 다루는 학과를 이수했다면 아마 알고리즘이나 자료구조론 수업을 들었을 것이고, 결국 학교에서 배운 내용을 잘 이수한 실력있는 사람이라면 충분히 코딩 테스트를 통과할 수 있는 사람이 되는 것이다. 

솔직하게 고백하자면 나도 이 코딩테스트에 대해서 막연한 불편함을 가지고 있는 사람이다. 나 스스로도 코딩을 잘한다고 생각해본 적이 없고, 코딩테스트에 나오는 문제를 살펴보면 내가 과연 저 문제를 시간안에 풀 수 있을까? 지금 회사에서 시험을 본다면 나는 붙을 수 있을까? 하는 생각을 가끔 해본다. 그래도 실무에서도 이런 능력이 필요하다고 느끼는 상태였고, 나름 자료구조부터 응용된 문제까지 차근차근 설명해주는 책을 찾는 과정에서 이번 책을 선정하게 되었다.

파이썬으로 익히는 말랑말랑 알고리즘

앞에서 언급했던 것처럼 시중에는 다양한 코딩테스트를 준비할 수 있는 책들이 출판되어 있고, 각각의 책들이 나름의 방향을 가지고 있다. 어떤 책은 진짜 테스트에 나왔던 문제를 바탕으로 문제은행식으로 담아놓은 책들이 있고, 혹은 TopCoder나 ACM-ICPC에 나왔던 문제들을 바탕으로 설명한 책들도 있다. 그리고 또다른 책은 개인의 경험을 바탕으로 초기의 이론부터 이론을 잘 활용할 수 있는 문제를 푸는 방향으로 진행되는 책들도 있는데, 이 책도 어떻게 보면 후자의 방향으로 따라가는 책 중 하나라고 볼 수 있다. 부제로 달려 있는 "차근차근 설명하고 막힘없이 이해하는 알고리즘"이란 내용이 책의 전반적인 내용을 요약한 것이라고 생각하면 좋을 것 같다. 그래서 뭔가 중급자의 입장에서 다양한 문제의 경향을 파악하고자 사람에게는 뭔가 부족해보일 수 있지만, 자료구조부터 처음부터 구현하면서 시험에서 많이 언급되는 문제들을 풀어보고 싶다 하는 입문자에게는 추천할만한 부분들이 담겨 있다. 책에서 다뤄지고 있는 상세 내용 및 문제는 다음과 같다.

  • 스택과 이를 이용한 괄호 문제 풀기
  • 해시
  • 소수구하기와 이를 이용한 에라토스테네스의 체
  • 탐색과 정렬
  • 재귀와 이를 이용한 최대공약수 구하기
  • Dynamic Programming과 이를 이용한 최적 전략 찾기

개인적으로 좋았던 부분은 외부 라이브러리에 의존하지 않고 직접 구현하면서, 딱 이것이 정답이다 하고 답 코드를 제시하는 것이 아니라 답까지 도출되는 과정을 하나씩 밟으면서 내용이 진행되는 점이다. 그래서 그런지 책 자체에 담고 있는 문제나 주제가 여타 알고리즘 관련 책에 비하면 많지 않음에도 책의 분량이 상당한 편이다. 그리고 책의 세부 파트도 결국 답에 해당하는 부분을 하나씩 구현하면서 설명되기 때문에, 문제에 익숙하지 않은 사람은 처음부터 하나씩 구현을 따라해보는 과정을 밟으면서 배울 수 있게 되어 있다. 

나도 회사내에서 SW 역량인증 시험을 준비하는 입장에서 물론 기출문제를 살펴보고 시험의 유형에 익숙해지는 것도 중요하겠지만, 기초부터 살펴보면서 머리속에서 좀 "생각"을 하면서 구현해보는 과정도 필요하다고 생각하며, 그런 측면에서 보면 이 책이 목적에 맞는 책이 아닐까 생각한다.

(참고로 책에서 제공하는 예제 파일은 웹사이트에 공유되어 있지만, 되도록이면 책의 내용을 살펴보면서 직접 해보는 것을 추천한다. 앞에서 언급했다시피 이 책은 답이 딱 주어져서 의미가 있는 책이 아니라 진행 순서대로 구현해보면서 경험을 쌓는데 의의가 있는 책이기 때문이다.)


저자 홈페이지에 가면 알고리즘 뿐만 아니라 다양한 분야에 대한 정보들이 많이 있다 참고해보면 좋을 것 같다.

 

뷰티풀 프로그래밍

프로그래밍, 데이터분석을 공부하는 개발자 블로그. 공부한 것, 찾아본 것 잊어버릴까봐 메모 해놓는 곳.

krksap.tistory.com

 

댓글