도서/IT 도서

[ IT 도서 리뷰 ] 다이내믹 프로그래밍 완전 정복

Chipmunks 2019. 12. 15.
728x90


두 달 전에 출간한 다이내믹 프로그래밍 완전정복, 언젠가 읽어보고 싶다고 생각했는데 기회가 찾아왔네요.


알고리즘을 전공 수업에서 원서로 추상적이고 원론적으로만 배워서 늘 부족한 느낌을 많이 받았었습니다. 그래서 다른 알고리즘 책들은 어떠한지 늘 궁금했습니다.


이 책은 전반적으로 다이내믹 프로그래밍이 메인 주제로 구성되어 있습니다. 책 크기도 작고 분량도 많지 않아 통학하며 가볍게 읽어볼 만 했습니다.


다이내믹 프로그래밍을 알고리즘 문제 풀이 전략으로 정의하고 재귀 호출, 메모 전략, 상향식 다이내믹 프로그래밍의 전략으로 알고리즘 문제에 접근합니다.



첫 챕터는 재귀 호출과 재귀 호출이 메모리에서 어떻게 올라가는지를 설명합니다.

유명한 하노이의 탑으로 시작해서 이진 트리 순회로 이어갑니다.

재귀 호출은 많은 함수의 호출이 이루어지는데, 이를 메모리 영역에서 어떻게 저장하는지를 간결하게 서술해 마음에 들었습니다.



두 번째 챕터는 메모 전략(memoization)을 소개합니다.

메모 전략을 왜 쓰는지, 메모 전략과 재귀 호출을 이용해 다이내믹 프로그래밍을 어떻게 하는지 서술합니다. 알고리즘 교재에서 많이 봤던 최소 거리와 최소 요금 문제를 예를 들어 설명합니다.


코드마다 주석이 상세하게 달려있어 복습도 빠르게 할 수 있어서 좋았습니다.



세 번째와 네 번째 챕터에서 다이내믹 프로그래밍을 본격적으로 소개하고

알고리즘 문제에 다이내믹 프로그래밍을 적용하기 전에, 확인해야 할 리스트들도 차근차근 설명합니다.

예제 문제 설명도 깔끔하고 용어 구분도 명확해서 빨리 이해할 수 있었습니다.



마지막 챕터는 실전 문제만 있는 장으로 여러 기본적인 알고리즘 문제들이 있습니다.

다이내믹 프로그래밍을 적용할 수 있는 이유와 여러 가지 접근 방법을 소개하고 시간 복잡도로 성능을 평가합니다.


백준, 경시대회류 같은 알고리즘 문제들은 없었지만 전공 수업에서 배웠던 예제들을 다시 복습하고 개념을 명확하게 잡을 수 있었습니다.

알고리즘을 처음 입문하거나 알고리즘 전공 수업 중 재귀, 메모 전략, 다이내믹 프로그래밍 부분이 곧잘 이해가 되지 않을 때 부교재로 활용하시면 좋을 것 같습니다.


댓글