-
[Review]알고리즘 트레이닝 : 프로그래밍 대회 입문 가이드Review 2019. 6. 19. 23:47
소프트웨어 엔지니어들에게 알고리즘은 화두가 높은 주제이다. 취미로 알고리즘 문제를 푸는 개발자도 있을 수 있고, 취직을 위하여, 이직을 위해서 여러 이유로 알고리즘은 개발자와 뗄 수 없다. 그중에서도 본 책은 '프로그래밍 대회'를 위한 알고리즘 트레이닝 방법을 소개해준다.
알고리즘에 관한 다른 책들과 비교하여 알고리즘 트레이닝 책은 얇아 읽는 부담감이 덜하다. 프로그래밍 대회에서 배우는 - 알고리즘 문제 해결 전략(구종만) 1/2권 분권'이 있었는데, 본 책은 상대적으로 다른 알고리즘을 위한 책 보다 얇아서 약한 개념만 부분적으로 읽고 보완하기에도 좋다고 느꼈다.
- 목차
...더보기1장 들어가며
2장 프로그래밍 기법
3장 효율성
4장 정렬과 탐색
5장 자료 구조
6장 동적 계획법
7장 그래프 알고리즘
8장 알고리즘 설계 기법
9장 구간 질의
10장 트리 알고리즘
11장 수학
12장 고급 그래프 알고리즘
13장 기하
14장 문자열 알고리즘
15장 고난도 주제
부록 A 수학적 배경 이론
목차는 위의 내용과 같다. 소 챕터까지 관련된 내용을 보고 싶다면 여러 온라인 서점에서 확인 하길 바란다. 각 챕터마다 해당되는 알고리즘에 대하여 알려려주고 마지막에는 관련된 문제를 생각해 볼 수 있게 하고, 코드를 예시 삼아 보여준다. 모든 예제 코드는 C++로 되어 있다. Python과 Java 여러 언어들이 있지만 상위권의 랭크된 참가들 중 대부분이 C++를 사용하고 있기에 그렇다고 한다.앞 장에서 어떠한 프로그래밍 대회가 있는지, 어떻게 프로그래밍 대회를 준비하면 되는지에 대하여 언급하고, 연습 문제 SET를 읽으며 독자는 알고리즘을 위한 두뇌를 훈련시킬 수 있다. 또한 코드 제출 및 채점 시스템 사이트가 나와있어 직접 문제를 확인할 수 있다.
개인적으로 인상 깊었던 장은 효율성이다.
알고리즘을 채점할때 중요한 요소인 시간 복잡도에 관하여 설명되어 있다. 해당 내용은 컴공 생이라면 학과 수업시간에 들을 수 있겠지만, 자료구조나 알고리즘에 관한 지식이 없는 타과 학생들이 접하기에 좋은 주제일 것이다.
내게는 어려워서 블로그에서나 확인 해 볼 수 있던 알고리즘인 벨만 포드, 다익스트라, LCP도 해당 책에 정의되어 있었고, 그 외에도 실제 코딩 테스트에 많이 나오는 DFS,BFS,TREE,정렬과 탐색 등 관련된 내용들이 정리가 잘 되어 있었다. 각 챕터 마지막에는 관련된 문제가 나와서 접근법을 읽기 전에 나라면 이렇게 풀어야지 라고 생각해 볼 수 있어서 프로그래밍 경진대회를 준비하기 전에 읽기에 가장 적합한 책이라고 생각한다.
추천 독자
- 자료구조는 알지만 코드를 구현하는데 익숙치 않는 독자
- 코딩 테스트를 준비하는 개발자
Summary
- 코딩 테스트를 준비하기 위해서 해야 하는 것
- 여러 알고리즘에 해당 되는 내용을 예제 코드로 설명 해 주어 알고리즘 접근법에 대하여 생각해 볼 수 있다.
- 예제 코드는 C++로 되어 있다.
- 한 권으로 되어 있는 잘 정리된 알고리즘 책
- 쉬운 내용 뿐만 아니라 고난도 주제와 생소한 알고리즘에 대해서도 나와 있다.
- 코드 제출 및 채점 시스템 사이트가 나와 있다.
LIST'Review' 카테고리의 다른 글
[Review]다이내믹 프로그래밍 완전 정복(한빛 미디어) (0) 2019.11.11 [Review]모던 자바 인 액션 (한빛 미디어) (0) 2019.09.15 [Review]해커 광기의 랩소디 : 한빛미디어 (0) 2019.07.12 [Review]RxJava 리액티브 프로그래밍(길벗) (0) 2019.05.20 [Review] 이것이 자바다(한빛 미디어) (0) 2019.04.08