junghun***
2022-08-27

복잡한 수식은 최소화하고 이해에 꼭 필요한 수식만 담고 작동 원리를 단번에 이해할 수 있게 도와주는 다양한 그림과 바로 실행하고 확인할 수 있는 108개 소스 코드를 예제로 제공해 알고리즘의 얼개를 완벽히 이해할 수 있도록 구성했다.
이 책은 제가 본 자료구조, 알고리즘 책 중에 가장 괜찮은 책이라고 생각합니다. 예전 2009년에 처음 나왔던 ‘뇌를 자극하는 알고리즘’을 전면 개정하면서 제목도 바뀐 것으로 보입니다. 예전부터 사랑받고 검증된 내용이라 믿고 봐도 될 것 같습니다. 학교 다닐 때 저도 봤던 기억이 있는데 예전보다는 확실히 책이 더 깔끔하고 가독성이 좋아졌네요.
자료구조, 알고리즘이라는 것이 배우는 내용이 정해져있어서 목차를 보니 컴퓨터 공학과 시절에 배웠던 반가운 단어를 볼 수 있었습니다. 이 책은 크게 자료구조, 알고리즘, 알고리즘 설계 기법 이렇게 3부분으로 나눌 수 있습니다. 순서대로 보면서 공부하면 됩니다. 각각의 자세한 공부내용은 아래와 같습니다.
자료구조
리스트, 스택, 큐, 트리
알고리즘
정렬, 탐색, 우선순위 큐와 힙, 해시 테이블, 그래프, 문자열 탐색
알고리즘 설계 기법
알고리즘 성능 분석, 분할 정복, 동적 계획법, 탐욕 알고리즘, 백트래킹
이 책은 C언어를 사용해서 자료구조, 알고리즘을 설명합니다. 다른건 몰라도 자료구조, 알고리즘은 메모리를 직접 다루면서 배우는게 필요하기 때문에 괜찮은 선택이라 생각합니다. 여기에 나온 예제를 돌려보면서 이번 기회에 C언어도 배워보는 것을 추천하고 싶네요. C언어를 안다는 건 이직을 할때도 확실히 유리하다 생각합니다.
거의 모든 공부가 그러하고 이 자료구조, 알고리즘도 확실히 뒤쪽이 더 어렵습니다. 라이브러리 사용만하는 개발에서 벗어나 내가 뭔가를 밑바닥에서부터 개발할 수도 있겠다는 마음으로 끈기를 갖고 하나 하나 도전하면 어떨까싶네요. 처음에 공부 가성비는 떨어질지 모르나 여기에 취미를 붙이면 컴퓨터가 돌아가는 방식을 좀 더 알게 되면서 더 나은 개발자로 확실히 레벨업을 시켜줄지도 모릅니다.
우리가 직접 자료구조, 알고리즘을 다룰 일은 생각보다 많지 않을 수도 있습니다. 하지만 배워야 하는 이유도 있습니다. 나중에 고급 개발자로 일하다보면 자료구조, 알고리즘 선택에 있어 도움이 되기 때문입니다. 만약 하드웨어를 직접 다루는 임베디드 개발자라면 직접 자료구조, 알고리즘을 수정하거나 다시 개발해야 할지도 모릅니다. 요즘은 구글과 같은 유명 인터넷 기업에서 코딩 테스트를 하는데 그것을 대비하기 위해서라도 자료구조, 알고리즘 공부는 필요합니다. 개발자가 되기위해서 필수는 아니지만 배워두면 반드시 도움이되는 공부라고 생각합니다.
"한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다."