파이썬 알고리즘 인터뷰 - 95가지 알고리즘 문제 풀이로 완성하는 코딩 테스트, 2021 세종도서 학술부문
박상길 지음, 정진호 그림 / 책만 / 2020년 7월
평점 :
장바구니담기



저자와 일러스트

이 책의 저자인 박상길 저자님에 대해서 간단히 설명하자면, 카카오 검색팀과 자연어처리팀을 거쳐 현재 현대자동차 AI 리서치 랩에서 차량에 탑재되는 AI 플랫폼을만드신 분이다. 또한 카카오 채용 코딩테스트 출제 위원회 소속이었으며 현대자동차에서도 AI 플랫폼 팀장으로 많은 면접에 참여했다고 하신다. 

책을 읽어보면서 느낀 것은 확실히 이러한 경험들이 책의 내용에 잘 녹아 있어, 취업이나 이직을 앞 둔 사람들에게 길잡이 역할을 해줄 수 있을 것이라고 생각한다. 


또한 이 책이 다른 알고리즘 서적들과는 다른점이라고 생각되는 부분은 바로 그림이다. 

이 책은 다른 알고리즘 책들에 비해서 그림이 많다고 느껴졌고, 이러한 그림들은 실질적으로 글만으로 이해하기 어려운 구조들을 쉽게 쉽게 풀어나갔으며, 문제를 풀이함에 있어서도 과정을 도식화 해줌으로써 추상적이었던 개념들을 제대로 이해하고 넘어갈 수 있었다. 또한 이 책에 나온 여러 가지 그림들을 응용하면 문제 풀이에도 많은 도움이 될 것이다.


책의 목차

파이썬 알고리즘 인터뷰 책은 다음과 같은 목차를 가지고 있다.

1부 - 코딩 인터뷰 & 프로그래밍 언어 선택

2부 - 파이썬

3부 - 선형 자료구조 

4부 - 비선형 자료구조

5부 - 알고리즘

부록 A 회사 및 이직 가이드

부록 B 카카오 공채 문제 풀이


파이썬 알고리즘 인터뷰 책이 다른 알고리즘 혹은 알고리즘 인터뷰 책들과의 다른 점이 있다면 그건 아마도 파이썬 이라는 프로그래밍 언어의 코딩 인터뷰 및 테스트를 볼 때의 장단점과 중요하지만 놓치기 쉬운 개념들을 잡아주며 알고리즘을 풀이함에 있어서도 파이썬 답게 문제를 푸는 방법을 알려주는 것이 아닐까 라고 나는 생각한다.


1부 코딩 인터뷰 & 프로그래밍 언어 선택

먼저 코딩 인터뷰의 경우, 나는 대학교 교수님 중 한 분이 교수직을 은퇴하시며 미국의 실리콘 밸리에서의 이직과정을 유튜브를 통해 올려주셔서 의도치 않게 해외의 코딩 인터뷰 준비 과정 및 내용을 접할 수 있었다. 하지만 실제로 현재 우리나라 IT 기업들의 코딩 인터뷰가 어떤 방식으로 진행되는지는 전혀 알지 못했지만 이 책을 통해서 카카오, 네이버 등의 IT 기업에는 현재 어떤 코딩 테스트 플랫폼을 사용하며, 각각의 플랫폼의 특징이 무엇이며, 해당 플랫폼을 사용할 때의 주의점 등을 알 수 있었다. 

또한 온라인 코딩 테스트를 준비할 때 사전의 준비사항들에 대해서 자세히 언급하는 부분을 읽고 느낀 점은 확실히 코딩 테스트를 준비하는 취업을 준비 하시는 분들에게는 도움이 될 것 같다고 느꼈으며, 나 또한 코딩테스트를 준비할 때 다시 한번 이 부분을 읽어보고 숙지해야 할 사항들이라고 생각한다. 


다음은 코딩테스트 프로그래밍 언어의 선택 부분이다. 기존에 나는 항상 코딩을 해왔던 C++로 알고리즘 공부를 하였다. 하지만 주변에서 Python으로 공부하는 사람들이 많아지고 코딩테스트를 볼 때 유리한 부분들이 많다고 들어서 나도 Python으로 코딩테스트를 준비해볼까 하는 생각을 가지고 있었던 도중에 파이썬 알고리즘 인터뷰라는 책을 읽고 ‘Python으로 코딩테스트를 준비해도 되겠다.’ 라는 확신을 가지게 되었다. 

프로그래밍 언어 선택 부분에서는 구체적인 수치를통해서 python, c++, Java, JavaScript 등 우리가 사용하는 언어들의 코딩테스트 시 선택한 언어들과 언어별 합격률 등을 확인해 볼 수 있었다. 또한 각각의 언어들의 특징과 간단한 구조, 문법들이 언어별로 작성되어 있어서차이와 장단점을 확인하기가 편했다. 마지막에 부분에는 최적의 프로그래밍 언어로 Python을 추천하는 이유들을 언급하여 왜 파이썬으로 코딩테스트를 보는게 유리한지 알 수 있었다. 


2부 파이썬

2부에서는 코딩테스트에 최고의 언어로 선택된 파이썬에 대해서 코딩 스타일을 대해서 알아보고 알고리즘 공부에 있어서 빠질 수 없는 시간복잡도 Big O가 무엇인지에 대해서 알아본다. 그 이후에는 파이썬에서 지원하는 자료형들과 그 중에서 코딩테스트에 단골로 등장하는 리스트와 딕셔너리에 대해서 상세히 다룬다. 

마지막으로 문자열 조작을 다루기 시작하면서 3부로 넘어가게 된다. 


2부인 파이썬을 읽으면서 기존에 코딩테스트를 목적으로만 파이썬을 공부해봤던 나에게 파이썬이라는 언어에 대해서 몰랐던 부분들을 많이 알게 되었고, 이러한 부분들 중에서는 실제로 코딩테스트 이후에 면접에서 물어볼 수 있을 만한 부분들이 많이 있을 것 같아서 많은 도움이 된 것 같다.


3부 선형 자료구조 , 4부 비선형 자료구조, 5부 알고리즘 

2부 뒤부분인 문자열 조작에서 부터 문제와 그에 대한 풀이들이 등장하였는데 3,4부에서 부터는 본격적으로 자료구조에 대한 개념을 설명하고 해당 자료구조를 문제에서 어떠한 방식으로 활용하는지에 대해서 알려준다. 

또한 5부에서는 코딩테스트에 자주 등장하는 중요한 알고리즘들에 대해서 설명하고 해당 알고리즘들을 이용한 문제풀이와 최적화를 하는 방법에 대해서 알려준다.


한 문제를 풀이하는데에 있어 여러 가지의 풀이들을 제안하며, 풀이에 따른 실행시간을 보여주어 어느 풀이가 효율적인지 시각적으로 바로 알 수 있게 해준다. 또한 각각의 문제와 풀이들은 실제로 풀어보고 실행이 가능한 코드들로, 책의 초반부에 문제를 푸는 사이트와 들어가는 방법 및 사용방법까지 설명을 해주었고 코드들과 영상들 또한 github과 유튜브를 통해서 풀이 영상을 남겨두었다. 

1부와 2부까지는 쉽게 이해하면서 넘어갈 수 있었다면 3,4,5부는 다르게 책을 읽어야 한다고 생각한다.


부록 A 회사 및 이직 가이드 

기존의 알고리즘 책들과 또 하나의 다른점은 바로 이 부분이라고 생각한다. 저자인 박상길 저자님께서는 실제로 카카오, 현대자동차에서 면접관으로 참여하신 경험이 있어서 그런가 면접관의 입장과 면접자의 입장 모두에서 면접을 볼 때 주의할 점이나 준비, 면접을 보는 방법 등을 서술하신 것 같다고 느껴졌다. 다 인상 깊었지만 그 중에 하나는 바로 '면접관이 잘못 알고 있는 내용'에 대해서 대처를 어떻게 해야하는 지에 대한 부분이다. 

분명한 팩트에 대해서 틀린 얘기를 한다면 예를 들어 '파이썬의 해시 테이블은 개별 체이닝 방식이 아닌데 면접관이 잘못 알고 있는 경우'에 대해서 이를 어떻게 하면 자존심이 상하지 않게 최대한 부드럽게 전달하여 해결해야 하는지는 당연할 것이라고 생각하지만 막상 면접을 볼 때는 그렇지 않을 것 같다는 생각이 들었다.

부록 A 부분에는 취업을 준비하는 사람들에게도 도움이 되지만, 이직을 준비하고 있는 사람들에게는 정말 뼈가 되고 살이 되는 좋은 정보들이 많이 담겨 있다고 생각한다.


부록 B 카카오 공채 문제 풀이

이 부분은 지금까지 앞에서 공부를 잘 해왔다면 마지막으로 개발자라면 가고 싶은 우리나라 IT 기업의 순위권 안에 있는 카카오의 공채 7문제와 그에 따른 해설들이 제공된다. 참고로 합격 기준선은 7문제중 4문제 였다고 한다.


최종 총평

취업을 준비를 위해서 알고리즘 공부를 하고 있는 나에게 파이썬 알고리즘 인터뷰라는 책은 방향을 제시해 준 길잡이 같은 책이다. 파이썬이란 언어로 파이썬 언어 답게 코드를 짜는 방법을 배워 나갈 수 있게 도와주며, 단순 취업을 위한 공부가 아니라 실무에 까지도 적용이 가능하도록 훈련을 하게 해준다. 

현재 나는 알고리즘 스터디를 진행하고 있고, 여기에서도 파이썬으로 파이썬 답게 코드를 작성하려고 노력하고 있다. 아직은 많이 부족하지만, 꾸준히 노력해서 하다보면 언젠가는 어떤 코딩테스트나 코딩 인터뷰에서도 당황하지 않고 면접관의 질문이나 문제를 막힘없이 풀 수 있을 날을 기대 하며 공부를 할 것이다.

이 책은 알고리즘을 공부하는 학생들, IT 회사에 취업을 준비하는 취업 준비생, 그리고 이직을 준비하는 경력 개발자들 모두에게 추전하며, 마지막으로 이 책을 읽을 수 있게 써주신 박상길 저자님의 노력에 감사함을 표하고 마친다.



댓글(0) 먼댓글(0) 좋아요(1)
좋아요
북마크하기찜하기 thankstoThanksTo