이것이 자료구조+알고리즘이다 with C 언어
연구이야기/도서이야기☆

이것이 자료구조+알고리즘이다 with C 언어

2022년 8월에 출간된 따끈따끈한 책 <이것이 자료구조+알고리즘이다 with C 언어>를 소개합니다. 이 책의 부제는 '문제 해결 능력을 키워주는 자료구조+알고리즘 입문서'입니다. 이 책의 저자는 박상현 님으로 대표작으로 <뇌를 자극하는 알고리즘>과 <이것이 C#이다> 등을 집필하셨습니다. 특히 <뇌를 자극하는 알고리즘>은 대한민국학술원 우수학술 도서로 선정되었던 책입니다. 

이 책을 통해 약 10여 년 만에 C언어를 다시 경험하게 되었습니다. 조금씩 간접 경험했지만, 이렇게 많은 시간을 함께하지는 않았던 것 같습니다. 이 책은 C언어를 활용하여, 자료구조와 알고리즘을 학습하는 데 도움을 줍니다. 최근 출간 도서들을 살펴보면, 자바나 파이썬을 활용한 자료구조와 알고리즘 책이 출판되고 있습니다. 하지만 C언어로 학습하는 자료구조와 알고리즘은 또 다른 매력이 있음을 다시 한번 경험하게 되었습니다. 

<이것이 자료구조+알고리즘이다 with C 언어>는 약 660페이지로 구성되어 있어 휴대하면서 읽기에 다소 부담스럽습니다. 한빛미디어 책은 대부분 전자책으로도 출간되어 있으므로, 전자책 뷰어가 있으시다면 전자책으로 만나보는 것도 좋을 것 같습니다. 하지만 개인적인 의견으로 이 책은 일반 책으로 읽는 것이 좋을 것 같습니다. 실제 책을 보는 것보다 A4와 연필로 이해하는 경우가 더 많을 것이기 때문입니다.

한빛미디어 평가단에 참가하여 작성한 글이며, 한빛미디어에서 제공해준 책을 읽고 작성했음을 밝힙니다. 

 

이 책의 매력은?

<이것이 자료구조+알고리즘이다 with C 언어>는 3부 16장으로 구성되어 있습니다. 특이한 점은 00 챕터로 시작하는 부분인데, 이 챕터는 자료구조와 알고리즘의 간단한 소개와 1부는 C언어로 메모리를 다루는 법(예: 포인터 등)을 요약해서 설명합니다. 필자는 메모리를 직접 다룰 수 있는 부분이 C언어로 자료구조와 알고리즘을 학습하는 데 매력적인 부분이라 생각하므로 이 부분을 처음에 설명한 부분은 매우 만족스러웠습니다.

1부에서는 자료구조를 다룹니다. 리스트(링크드 리스트, 더블 링크드 리스트, 환영 링크드 리스트)를 시작으로 스택, 큐, 트리 총 4개의 장으로 구성되어 있습니다. 일반적인 자료구조 책에서 다루는 내용을 대부분 다루고 있습니다. 2부에서는 알고리즘을 다룹니다. 정렬(버블, 삽입, 퀵), 탐색(순차, 바이너리, 레드-블랙 트리), 큐, 힙, 해시 테이블, 그래프, 문자열 탐색 알고리즘 등을 설명합니다. 마지막 3부에서는 알고리즘 설계 기법을 설명하고, 알고리즘 성능 기법, 분할 정복, 동적 계획법, 탐욕 알고리즘, 백트래킹 등을 다루고 있습니다. 

1부와 2부에서 자료구조와 알고리즘의 기초에 대해 다루고, 3부에서 앞에서 배운 자료구조와 알고리즘을 활용하여 알고리즘을 어떻게 설계해야 공간/시간 복잡도를 고려하며 프로그램을 작성할 수 있는지에 대한 이해도를 높일 수 있습니다.

이 책은 자료구조와 알고리즘에 관한 입문서로 모든 자료구조와 알고리즘을 다루고 있지는 않습니다. 하지만 이 책에서 배운 지식을 체계적으로 내재화할 수 있다면, 여기서 다루지 않은 자료구조와 알고리즘도 이해하는 데 큰 어려움은 없을 것으로 생각합니다.

컴퓨터와 친하지 않고 프로그래밍이 아직 어색한 독자라면 이 책이 어렵게 느껴질 수 있습니다. 하지만 이 책에서 다루는 내용을 이해할 수 있다면, 컴퓨터 프로그래밍을 하기 위한 큰 문턱을 하나 넘은 것입니다. 한 번 도전해 보세요. 프로그래밍이 더 재미있게 다가올 것입니다.  

 

마치면서

<이것이 자료구조+알고리즘이다 with C 언어>는 프로그래밍 입문자가 프로그래밍의 매력에 빠질 수 있게 도와주는 책입니다. 다만, 시간과 노력을 투자해야 한다는 전제가 깔려 있습니다. 이 책을 처음부터 끝까지 정독하며 관련 내용을 이해하고, 연습문제를 풀이한다면 프로그래밍의 매력에 빠질 것임을 의심하지 않습니다.

운동을 할 때도 기본 체력 운동이 제일 어렵습니다. 재미도 없고, 힘들기도 배로 힘들죠. 하지만 그 어려움을 이겨낼 때 좋은 운동선수로 성장할 수 있습니다. 자료구조와 알고리즘도 비슷합니다. 이 어려움을 잘 극복한다면 프로그래밍이 재미있고 더 빨리 성장할 수 있을 것입니다.

"한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다."