본문 바로가기

운동하는 개발자/알고리즘, 코딩테스트

실무자가 경험한 코딩테스트(알고리즘) 책 추천 + 스토리..

728x90

제법 오래전 사회 초년생쯔음 시절 코딩테스트란 것을 전혀 모르던 때 이스트소프트에 서류합격하여 코딩테스트에 암것도 모르고 들어갔다가 맨붕한 경험이 있었다.

결국 코테가 없는 곳으로 이직하였었으나 코딩테스트는 꼭 이직의 준비 뿐만아니라 생각하는 사고력을 키운다는 점에서 공부해야겠다고 생각했었고 약 5년 전쯤 회사 사수와 함께 해커랭크를 풀었었다.
일주일간 3~4문제를 풀어오고 어떻게 풀었는지 비교해는 식으로 가볍게 스터디 식으로 진행했었는데 문제는 해커랭크가 모두 영어란 것이다.
영어를 잘 읽는 사수에 비해 영어에 약한 나는 문제를 읽고 이해하는 거부터가 너무 시간을 소모하고 지치게 하였다.
그리고 공부없이 무작정 풀다 보니 문제를 어떻게 접근해야 하는지, 내가 왜 틀렸는지 알 수 없었기에 난이도가 오르면서 포기하게 되었다. (+ 회사도 바빴다)

이후 다시 시간의 여유와 마음의 평화를 찾고 책을 사서 공부하기로 하였다.
당시 나는 Delphi가 주 언어였는데 해당 언어는 오래되고 잘 사용되지 않기에 코딩테스트에선 사용하지 않았기에 다른 언어를 선택해야 했으며 그나마 MFC를 좀 했기에 C++을 하려다가 파이썬이 코테에 최적화된 언어고 편하게 사용할 라이브러리와 함수가 잘 되어있다 하였다

그래서 첫 구매 한 책!

파이썬 알고리즘 인터뷰

파이썬은 그룹스터디 할 때 아주 간단하게 만져본 적 있는 언어였기에 아~~~ 주 조금의 문법이나 스타일은 알고 있었다.
책에서는 코테와 파이썬의 특징들 그리고 코테에서 주로 사용되는 자료형, 조작법 등을 알려주고 
자료구조나 알고리즘에 맞는 문제들을 몇 개씩 모아서 설명하고 풀 수 있게 되어있다.
문제는 leetcode (리트코드)라는 해외사이트의 문제들을 푸는데🤮 다행히 책에선 문제가 다 번역되어 있어서 영어의 압박은 덜해서 좋았다.
위 내용들이 장점이라 볼 수 있고 단점으로는 문제의 난이도가 너무 널뛰기가 심하다는 점이다.
하나의 이론을 배워서 첫 문제는 쉽게 해결했다가 다음 문제는 손도 못 대고 설명을 읽어도 부족한 부분이 있어서 긴가민가해지는 경우가 많았다... 이거도 몇 달 하다가 맨탈이 자꾸 나가서 손을 떼게 되었다.

 

몇 년쯤 지난 뒤 C++을 주력언어로 쓰게 되기 시작하면서 다시 코테를 공부해보고 싶어졌다.
그래서 C++로 된 알고리즘 책 추천을 받았고 두 번째 구매한 책!!

프로그래밍 대회에서 배우는 알고리즘 문제해결전

책이 상당히 두껍고 (두꺼운 거 2권) 내용도 자세하다.
나보다 젊은 분이 썼는데 천재st같았다... 문제내용은 알고스팟이라고 자체 운영하는 곳에 올라와 있고 채점도 해당 사이트를 통해 해 볼 수 있으나 제법 오래전부터 운영을 중지하였는지 서버 상태도 안 좋고 댓글도 없고 문답도 없고 전체적으로 문제가 있으며 죽어있는 사이트이다. (약 9년 전부터 운영 중지된 듯하다)
그리고 책의 단점으로 설명이 너무 자세하다.. 특히 수학적인 설명이 상당히 길고 자세하였기에 구간 구간 이해하기도 벅찼다. 거의 대학시절 공학수학 책 읽는듯한 기분...
그렇다고 건너뛰면 문제를 풀 수 없다... '앞에서 다 설명해 드렸으니 다 아시죠^^?' 이런 느낌이랄까

뒤늦게 찾아본 후기들.. 책은 좋은 책이지만 어려운 책이라는 평이 많았다.
진짜 이거는 읽으면서 한숨을 몇 번 쉬었는지 맨탈 바사삭이 정말 많이 되었다.
천재들만 노는 세계에 내가 발 디딜라고 하는 건가 라는 생각까지 들 정도로... ㅎㅎㅎ

 

몇 달 뒤 마지막이란 생각으로 C++로 되어있는 알고리즘 책을 직접 서점 가서 읽어보고 고르자!라고 생각하였다
그렇게 교보문고에서 만난 이 책!

알고리즘 코딩 테스트

파이썬 알고리즘 인터뷰와 비슷하게 짧게 알고리즘 설명이 있고 그에 해당하는 문제가 3~4개 정도 있다.
문제는 백준온라인에 있는 문제들이며 해당사이트에서 풀어볼 수 있다.
이론 설명 -> 문제 -> 문제 해석 -> 예제 입/출력값으로 손으로 계산해 보기 -> 슈도코드 작성 -> 실제 코딩 순으로 구성되어 있어서 정말 좋다.
나는 그래도 과거에 쪼금 해봤다고 문제만 읽고 해석 부분은 생략하고 손계산, 슈도코드작성 실제 코딩 순으로도 해보기도 했고 접근법을 모르겠는 것은 해석 부분을 보며 이해하기 쉬웠다.
과거 이해가 잘 안 갔던 내용들이 아 이렇게 쉬운 개념이었어?라는 느낌이 들 정도였다.
난이도도 백준 난이도에 근거하여 순차적으로 어렵게 하여 딱 적절한 계단식 성장이 가능한 것 같다.
아직도 책의 초반부이긴 하지만 진짜 제일 맘에 드는 책이고 꾸준히 해 볼 예정이다.

728x90