myjar***
2022-12-30

복잡한 수식은 최소화하고 이해에 꼭 필요한 수식만 담고 작동 원리를 단번에 이해할 수 있게 도와주는 다양한 그림과 바로 실행하고 확인할 수 있는 108개 소스 코드를 예제로 제공해 알고리즘의 얼개를 완벽히 이해할 수 있도록 구성했다.
개발자에게 자료구조와 알고리즘은 필수 항목이라고 생각한다. '뇌를 자극하는 알고리즘'의 저자 박상현님도 '좋은' 프로그래머가 되려면 눈앞의 문제에 적절한 자료구조와 알고리즘을 적용할 수 있어야 한다고 얘기한다. 반드시 할 필요는 없지만, 해두면 좋다는 의미이다.
요즘 개발자들이 주로 사용하는 개발 언어(C#, 자바, 코틀린, 파이썬)에서는 리스트, 스택, 큐, 트리 등의 자료 구조 뿐만 아니라 탐색, 정렬 등의 알고리즘을 표준 라이브러리로 제공한다. 그래서 개발자들은 어플리케이션에 맞게 표준 라이브러리를 선별해서 사용하면 된다. 직접 자료구조나 알고리즘을 구현하는 것은 버그를 유발할 수도 있기 때문에 이미 검증된 표준 라이브러리 사용이 권장된다.
대부분의 프로그래머들이 자료구조나 알고리즘의 내부 구조나 동작원리를 알고 있기 때문에 표준 라이브러리를 사용해도 무방하지만, 필요에 따라서는 직접 구현해야 할 때가 있다. 그리고 직접 구현하면 표준 라이브러리보다 어플레이케이션에 맞게 보다 더 좋은 성능을 낼 수도 있다.
박상현 님의 '뇌를 자극하는 알고리즘'은 2009년에 출간되어 많은 개발자들의 호응이 있었고, 2022년 '이것이 자료구조+알고리즘이다 with C언어'라는 이름으로 리뉴얼되어 출간되었다.
책은 제목 그대로 리스트, 스택, 큐, 트리 등의 자료구조와 정렬, 탐색, 우선순위 큐와 힙, 해시 테이블, 그래프 등의 알고리즘을 다루고 있다. 그리고 마지막 Part III에서는 알고리즘 성능 분석, 분할 정복, 동적 계획법, 탐욕 알고리즘, 백트래킹 등 알고리즘 설계 기법도 학습하도록 구성되어 있다.
2009년의 책 내용이 잘 기억이 나지 않지만, 개인적으로도 C언어로 구현된 코드를 오랜만에 만나니 반가웠고, 또 새로웠다. 개발자에게 상당히 중요한 내용을 다루고 있기 때문에, 오랜만에 만나는 자료구조와 알고리즘의 내부 구조와 동작을 코드로 만났는데, 저자의 꼼꼼함과 편집의 도움으로 불필요한 내용은 거의 없고, 딱 필요한 내용만을 담고 있어 좋았다. 특히 각각을 설명하기에 앞서 저자가 들려주는 소소한 이야기에 더 집중할 수 있었다.
저자는 많은 독자들이 이 책을 마지막 페이지까지 읽게 하는 것을 목표로 삼았다고 했다. 중도에 포기하는 사람들이 많기에 최대한 끝까지 함께 하려는 저자의 의도가 느껴졌다. 책의 예제들도 자료구조와 알고리즘을 학습하는 이들에게 큰 도움이 된다. 이것이 자료구조+알고리즘이다 라는 책과 함께 더 나은 개발자가 되도록 노력해보자.
한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다.
#이것이자료구조+알고리즘이다 #C언어 #자료구조 #알고리즘