본문 바로가기

[서평] Do it! 알고리즘 코딩 테스트: C++ 편

@9ky02025. 8. 29. 23:17

이지스 퍼블리싱 인스타그램 게시글

평소처럼 인스타그램 릴스를 보고 있었는데, 우연히 이지스 퍼블리싱 사의 인스타그램 게시글이 떴다. 유명한 Do it! 시리즈 책에서 [알고리즘 코딩 테스트 C++ 편]의 개정판이 나온 것을 기념하여 서평단을 모집한다는 것이었다. 게임 업계 취업을 희망하여 C++ 언어로 코딩 테스트를 준비하는 나로서 마침 복습 느낌으로 한 번 점검하면 좋을 것 같아 신청하게 되었고, 

정말로 선정되었다.

1. 책의 구성

이 책은 크게 2가지 파트로 구분되어 있다. [자료구조], [정렬], [탐색], [그리디], [정수론]으로 구성된 '기초 편'과 [그래프], [트리], [조합], [동적 계획법], [기하]로 구성된 '실전 편'이다. 그리고 각각의 챕터에서 해당 주제의 '핵심 이론'을 먼저 소개한 뒤 예시 문제들을 차례대로 나열하고 있다.

 

모든 내용은 일관성 있게 구성되어 있다. 핵심 이론에서는 해당 주제의 자료구조/알고리즘이 '어떻게 동작하는지'와 '어떻게 문제를 풀어나가야 할지'를 제시하고, 해당 플롯에 맞게 예시 문제들도 설명해주고 있다.

예시 문제들은 1. 문제 분석하기 2. 손으로 풀어보기 3. 의사코드 작성하기 4. 코드 구현하기 순으로 보여준다. 문제 분석하기에서 '어떻게 접근해야 할지'를 보여준 뒤, 손으로 풀어보기에서 접근을 어떻게 해야 하는지 상세한 그림과 글로 보여준다.

챕터 6 '탐색' 문제 24 [소수 찾기]의 문제 분석하기와 손으로 풀어보기

이를 기반으로, 의사 코드를 통해 어떤 구조로 코드를 작성해야 하는지 틀을 잡아주고 이를 실제 코드로 보여주며 핵심 로직의 구현을 알려준다. 아래 사진을 보면 동일한 핵심 로직에 추가 표시가 되어 있어 중점적으로 봐야 할 부분을 바로 확인할 수 있다.

같은 문제의 의사 코드와 실제 코드

이러한 식으로 100개가 넘는 문제가 수록되어 있으며, 그중에서도 중점적으로 봐야 할 문제들은 [빈출] 내지 [핵심] 태그가 붙어 있어 우선순위를 정하기도 괜찮다.

2. 개인적인 감상

본인은 본격적으로 코딩 테스트 준비를 시작한 지 1년이 넘었다. 같은 대학 프로그래밍 동아리 친구들과 함께하는 온라인 스터디에 참여하는 것을 계기로 제대로 준비했었다.

당시 문제를 풀고 작성했던 Pull Request의 일부. https://github.com/AlgoLeadMe/AlgoLeadMe-3/pull/57

이 스터디를 막 시작했을 때는 자료구조/알고리즘 전공 수업만 막 들은 상태로, 이론만 어느 정도 숙지를 하고 문제를 풀 줄은 잘 모르는 상태였다. 그래서 친구가 푼 문제, 어느 사이트에서 추천하는 문제, 알고리즘 검색해서 가장 먼저 뜨는 문제, 백준 추천 문제집, 프로그래머스 고득점 Kit 등등 구분 없이 닥치는 대로 풀어댔었다.

 

그렇다 보니 아래와 같은 문제점들이 생겼었다.

  1. 어떤 자료구조/알고리즘이 중요한 것인지 바로 캐치할 수 없었다.
  2. 각각의 자료구조/알고리즘 별로 자주 나오는, 또는 핵심적으로 알아야 할 유형이 무엇인지 알기 어려웠다.
  3. 풀어봤던 특정 유형을 반복해서 푸는 안 좋은 습관이 생기곤 한다.

실제로 이 책에 실린 전반적인 문제들을 훑어보니 1년 넘게 코딩 테스트 대비하면서 알고리즘 문제를 많이 풀었다 생각했는데, 안 풀어본 문제가 꽤나 있었다. 각 자료구조/알고리즘 주제 별로 나올 수 있는 여러 유형을 골고루 보여주는 것 같아 오랜만에 복습을 괜찮게 했다.

 

또한 알고리즘 문제를 풀다 보면 이해가 되지 않아 다른 사람의 풀이 내지 설명을 참고하기도 하는데, 글 설명만 보고는 잘 이해가 되지 않는 경우가 자주 있다. 그런데 이 책의 저자가 직접 해설해 주는 영상이 유튜브에 공개되어 있어, 추가적인 설명 및 피드백을 받아볼 수 있는 것도 큰 장점인 것 같다.

https://youtube.com/playlist?list=PLFgS-xIWwNVVl3EckbznNdCIUNsoGGloa&si=KskOTxZF4R4KGMAd

 

Do it! 알고리즘 코딩테스트 - 실전문제 풀이(C++)

Do it! 알고리즘 코딩 테스트에서 다루는 다양한 실전문제들을 알기쉽게 알려주는 강의들로 구성되어있습니다. 모든 실전 문제는 백준 온라인 저지를 통해 테스트 가능합니다.

www.youtube.com

3. 정리

본인이 생각하기에, 이 책을 읽기에 적합한 대상은 [자료구조, 알고리즘 수업을 막 수강한 컴퓨터 공학 전공생 3학년]이다. 코딩 테스트 대비를 막 시작하는 초심자 입장에서는 정보가 너무 많아서 어떻게 시작해야 할지 오히려 감을 못 잡는 경우가 있다. 본인 또한 그랬고, 주위 사람들도 꽤 있었다. 그러한 사람들에게 최초 길잡이가 되어주는 역할로서 충실하다고 생각된다. 자신이 알고 있는 지식이 정확한지 체크하고, 기초 - 응용 - 고난도로 골고루 구성된 예시 문제들을 통해 어떻게 사용하고 응용하는지 감을 잡으며 핵심/빈출 유형을 머릿속에 인지하는 식으로 진행하면 앞으로의 훈련에 괜찮은 밑거름이 되어줄 수 있을 거라 생각한다.

 

마지막으로, 본인이 자료구조/알고리즘 문제를 풀 때 도움을 얻은 사이트를 몇 가지 공유하며 마치겠다.

https://school.programmers.co.kr/learn/challenges?tab=algorithm_practice_kit

 

프로그래머스

SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프

programmers.co.kr

https://github.com/tony9402/baekjoon

 

GitHub - tony9402/baekjoon: 코딩테스트 대비 문제집(Baekjoon Online Judge)

코딩테스트 대비 문제집(Baekjoon Online Judge). Contribute to tony9402/baekjoon development by creating an account on GitHub.

github.com

https://solved.ac/class

 

solved.ac

알고리즘 문제해결 학습의 이정표 🚩 Baekjoon Online Judge 문제들의 난이도 및 티어 정보를 제공하는 사이트입니다.

solved.ac

9ky0
@9ky0 :: Hello, 9ky0!

공감하셨다면 ❤️ 구독도 환영합니다! 🤗

목차