https://www.aladin.co.kr/shop/wproduct.aspx?ItemId=294848641
https://www.aladin.co.kr/shop/wproduct.aspx?ItemId=299409119
00. 들어가며
연말과 연초에는 자연스럽게 알고리즘 공부를 하게 되는 것 같습니다.
(그 이유는 이미 아시거나, 아시게 될 것입니다^^7)
개인적으로 가장 많은 도움을 받았던 알고리즘 두 권을 소개해보고자 합니다.
01. 리뷰 대상 소개
오늘의 리뷰 대상은 다음의 두 권입니다.
1. 알고리즘 코딩테스트 - 파이썬 편
2. 똑똑한 코드 작성을 위한 실전 알고리즘
만약 여러분들이 일반적인 수준의 알고리즘 문제를 풀 수 있다면, 두 번째 책을 먼저 접하셔도 상관없으나 기본적으로 두 권을 함께 이용하는 것을 추천합니다.
그 이유는 첫 번째로 제시한 알고리즘 코딩테스트는 각 알고리즘 유형별 간단한 소개와 이에 대한 문제 풀이를 어떻게 할까하는 방식으로 접근하게 되는데요. 이 과정에서 알고리즘 문제 풀이 사이트로 유명한 백준 사이트에서 직접 문제를 풀어볼 수 있습니다. 이 과정에서 직접 문제를 풀어봤다는 것과 그 결과물이 남는다는 점에서 지속적으로 공부할 수 있는 동기를 부여해줍니다. 이 책만으로 프로그래머스 기준 레벨 2까지는 무난하게 성장할 수 있을 것 같습니다.
하지만 실전 문제 풀이 관점에선 충분해도 이론적인 측면은 조금 부족하다 느낄 수 있는데요. 이에 대해 잘 정리된 책이 두 번째로 추천드리는 책입니다. 이를 통해 프로그래머스 레벨 3 문제를 푸는 것에 도움을 얻을 수 있었고, 그 이상의 난이도는 푸는 법을 알고 있는가 내지는 시간적인 문제로 판단됩니다.
02 두 책의 특징
첫 번째 책의 특징은 [알고리즘에 대한 간단 설명 → 문제 제시 → 문제 해석 → 수도 코드 작성 → 실제 코드 작성]의 단계를 거치며 각 알고리즘 별로 수준을 바꿔가며 반복적으로 문제를 풀어보는 과정에서 직접 해당 알고리즘을 구현해보고, 문제를 풀기 위해 생각할 기회를 얻을 수 있다는 장점이 있습니다.
두 번째 책의 특징은 각 알고리즘의 성능을 구체적으로 비교해가며 문제의 복잡도에 따라 어떤 알고리즘을 사용하는 것이 적절한지부터, 우리가 일반적으로 사용하는 알고리즘을 소스코드를 라인별로 분해해가며 기능을 소개하거나, 직접 그 알고리즘을 구현하는 것에 초점이 맞춰져 있습니다.
03. 추천 대상
이미 파이썬과 기초적인 알고리즘 문제 풀이는 가능하다는 가정 하에 아직 다양한 알고리즘을 접해보고 싶고, 직접 문제를 풀어보며 알고리즘 공부를 일단 시작하고 지속하는게 중요하다 판단하시는 분들은 첫 번째 책을, 이 수준을 넘어 보다 구체적인 이유와 동작원리에 대해 배우고 이를 구현하는 것을 해보고자 한다면 두 번째 책을 추천드립니다.
상황적으로는 첫 번째 책의 경우엔 전공생 혹은 취업 준비생들에게, 두 번째 책의 경우엔 현직에 종사하고 있거나 이직을 준비하는 이들에게 더욱 도움이 되지 않을까 싶습니다.
04. 정리
1. 알고리즘 코딩테스트 - 파이썬 편
- 알고리즘 기초를 뗀 이들에게 추천하는 실전 문제풀이 위주의 학습서
- 534 페이지라는 분량에 비해 공부할수록 페이지가 부족하다고 느낄 정도로 알차다
- 백준 홈페이지에 올라와있는 문제를 직접 풀어볼 수 있고, 부가적으로 입출력 방식, 데이터 전달 방식에 따른 성능 차이도 배워 백준 홈페이지 입문서로서도 적절해 보임
- 퇴근 후 2~3시간 공부해서 1회독 하는데 두 달 정도 걸렸음
2. 똑똑한 코드 작성을 위한 실전 알고리즘
- 각 유형별 알고리즘 문제 풀이가 가능한 이들에게 이론적으로 학습하기 위한 중급 서적
- 이유도 모르고 무작정 좋은 알고리즘을 찾는게 아닌, 최적화된 알고리즘을 적용하기 위한 고민을 해볼 수 있다
- 컨텐츠 명으로만 보면 처음 보는 것은 없지만, 그 안의 내용들은 고민하거나 배워본 적이 없는 내용들로 가득하다
- 직접 구현하는 과정이 필수적이진 않기에 1회독에는 10시간 정도가 걸렸던 것 같으며, 회사 업무 등을 위해 늘 옆에 비치해둘만한 책
"한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다."
'DATA SCIENCE > Review' 카테고리의 다른 글
[Monthly Reading]처음 배우는 NHN Cloud (0) | 2023.04.23 |
---|---|
[Monthly Reading]nginx cookbook (0) | 2023.02.26 |
Monthly Book Review 11 : 쉽게 배우는 AWS AI 서비스 (1) | 2022.10.29 |
Monthly Book Review 10 : 김기현의 딥러닝 부트캠프 with 파이토 (0) | 2022.09.25 |
Monthly Book Review 09 : 혼자 공부하는 컴퓨터 구조 + 운영체제 (0) | 2022.09.11 |