관리 메뉴

기억을 위한 기록들

<이것이 자료구조+알고리즘이다 with C언어> 리뷰 본문

이런저런 책들

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

에드윈H 2022. 12. 30. 16:08

컴퓨터 언어에 대해 다룬다고 하면 무조건 필수라고는 안하지만(?) 안 하는 사람은 없을 것이다. (즉, 모르면 손해 정도랄까)

 

그 와중에도 그렇게 대중적이진 않지만 심오한(?) C언어로 해당 책은 구성되어 있다.

 

책의 구성은 다음과 같다.

 

 

자료구조와 알고리즘 순서대로 각각의 종류에 대해 알려주고 있다. 그리고 후반은 알고리즘 설계 기법이라는 챕터로 상황별 알고리즘 설계기법과 성능 측정법에 대해 알려준다.

 

어떤 알고리즘이 어떤 성능을 발휘하는지에 대해 알고 있어야 적재적소 필요할때에 알맞게 사용할 수 있기 때문이다.

 

챕터 0에서는 자료구조와 알고리즘이 뭔지 왜 배워야하는지에 대해 간단히 설명해주고 있어서 상기시켜줄 수 있어서 좋았다.

 

우선 자료구조란? 데이터 보관 방법 & 데이터에 관한 연산의 총체를 뜻한다고 한다.  창고에 화물을 넣을 때 다양한 보관 방법이 있듯이 컴퓨터 안에서 있는 데이터들의 다양한 보관방법들과 그 데이터들을 더하고 빼고 나누는 등의 다양한 '연산'을 할 수 있는 것이라고 할 수 있다.

이걸 왜 배워야하지라는 의문이 생길 수 있다.

자료구조를 왜 배워야하지??라는 의문에 대한 대답을 해주고 있다. 나도 학부생 시절에 딱딱한 교과서를 보면서 자료구조는 이런 게 있고 이런 것이다라고 만 말로만 들으면 관심도 없었고 흥미도 없었다. 하지만 실제로 매우 많이 필요한 기법들이 있고 유용하다.

 

요약하자면, 1. 자료구조의 내부를 이해하면 이상한 자료구조를 선택하는 일을 피할 수 있다. 2. 자료구조 및 알고리즘은 데이터를 효율적으로 사용할 수 있게 도와주는 핵심부품역할을 한다.라고 정도 책에서는 대답해주고 있다. 자세한 설명은 책을 참고하자.

 

책에서 알고리즘에 대한 정의를 "어떤 문제를 풀기 위한 단계적 절차"라고 설명하고 있다.

 

내가 이해했던 알고리즘에 대해 설명하자면 A지역에서 B지역으로 가는 방법이 다양하게 있는데, 지하철, 도보, 택시, 자전거 등등 엄청나게 많은 방법들 중 어떤 방법으로 가야 최대한 짧은 시간에 효율적을 갈 수 있는지에 대한 정답을 찾고 적용하는 게 그게 바로 알고리즘이라고 생각한다.

 

 

그리고 C언어에서 메모리를 다루는 방법에 대해 설명해준다. (프로그래밍 언어를 입문할 때 C언어 포인터에서 많이들 포기한다고 하던데...)

 

해당 책에서는 C언어의 복습하는 식으로 접근하고 있어서, 핵심만 간단하게 설명해주고 있다. C언어 자체의 기초를 모른다면 별도의 책을 사서 보는 게 좋긴 할 거 같다.

 

이후엔 챕터에서 본 것처럼 각각의 자료구조 및 알고리즘에 대해 설명해주는데 각 챕터가 시작할 때 특정 방법들에 대한

학습 목표라는 페이지에서 핵심 개념 및 학습흐름이라고 정리해주는 부분이 좋았다고 생각한다.

 

 

 

 

나는 주로 C++언어를 많이 다루면서 C언어에 대한 간단한 복습도 해주면서 자료구조 및 알고리즘에 대한 참고서로 소장하기엔 해당 책은 좋은 것 같다.

 

 

 

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