콘텐츠 바로가기
본문 바로가기


블로그 전체검색
이것이 자료구조+알고리즘이다 with C 언어

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

박상현 저

내용 평점 5점

구성 평점 5점

 

알고리즘과 자료구조.

 

전산 쪽에 관련된 사람이라면 가슴속 어딘가에 품고 있는 애증의 단어라고 생각한다.

분명 알기는 아는데... 남에게 가르쳐 줄 정도로 확실히 알고 있는지 묻는다면 자신 있게

그렇다고 말할 수 있는 사람이 얼마나 될까?

 

그런 자신감 없는 나에게 도움이 될 거라 생각해서 선택한 책이

이것이 자료구조 + 알고리즘이다 wit C언어라는 책이었다.

 

먼저 이 책은 첫 부분에 학습 로드맵을 제시해 준다.

 

Part 01에서 자료구조를 배우고, Part 02 알고리즘

그리고 Part 03 알고리즘의 설계 기법에 대해 공부한다.

 

 

Part01의 자료구조는 4개의 챕터로 구성되어 있으며,

각 챕터는 알고리즘을 익히는 데 필요한 기본이 되는 기초 지식이자

기본이 되는 리스트를 먼저 공부하고 그다음 스택, 큐, 트리 순서로

진도를 나가게 된다.


 

리스트 챕터를 살펴보면 리스트 ADT, 링크드 리스트, 더블 링크드 리스트, 환형 링크드 리스트의 개념과 리스트의 장단점 및 예제 구현을 통해 좀 더 쉽게 개념을 익힐 수 있도록 도와준다.

 

예제 구현은 C언어로 구현되어 있으며, 따라 해 봄으로써 C 언의 포인터 및 메모리 관리에 대해 익숙해질 수 있다는 점도 좋은 것 같았다.


스택 챕터에서는 스택의 개념과 배열 기반의 스택, 링크드 리스트로 구현되는 스택, 그리고 스택으로 사칙연산 계산기를 만들어 볼 수 있다.


 

이런 식으로 스택과 큐, 트리까지 가장 기초적인 자료구조를 공부하고

본격적인 알고리즘 공부를 배워볼 수 있는 Part 02로 넘어가 보자.


 

Part 02는 정렬에 대해서 배울 수 있다.

세 가지 정렬 알고리즘을 설명하는데, 각각의 알고리즘은 성능이 모두 제각각이라서

이를 비교해 보는 방법이 재미가 있다.


 

먼저 버블 정렬에 대해서 설명하는데 간단해서 버그를 만들 가능성이 적기 때문에

많은 프로그래머가 즐겨 사용하고 있는 알고리즘이다.

왜 제일 먼저 버블 정렬에 대해서 설명을 할까?

뒤이어 나오는 삽입 정렬과 퀵 정렬의 성능을 비교하기 위해서다^^

최악의 경우를 제외한 평균적인!!! 상황에서는

버블 < 삽입 < 퀵 이런 순이며 저자는 자세한 설명으로 왜

이렇게 되는지에 대해 자세히 설명하고 있다.


 

뒤이어 우선순위 큐와 힙, 해시 테이블, 그래프, 문자열 탐색을 설명하며

무척이나 내용이 충실하며 자칫 지루해질 수 있는 부분은 성능상의 약점과 더 나은 방법을 제시하면서 흥미를 느끼고 더욱 집중해서 책을 볼 수 있도록 해줬다.


 

마지막 Part03는 이 책의 핵심이며 꼭 봐야 할 내용이라고 생각한다.

바로 알고리즘의 성능 측정 기준과 방법을 배울 수 있기 때문이다.


 

기본적인 O 표기법 등 오메가, 세타에 관해서 설명하며, 퀵 정렬의 성능을

최악의 경우, 최선의 경우, 평균의 경우에 대해 각각의 성능을 재귀 방정식으로 정리함으로써 알고리즘 성능 분석 방법을 제시해 주고 있다.


 

뒤에는 분할 정복, 동적 계획법, 탐욕 알고리즘, 백트래킹의 4가지 알고리즘 설계 기법에 대해

충실히 설명하고 있다.


 

드디어 Part 03까지 모두 완주 하였다.

이런 알고리즘류 책들은 수많은 수식들과 복잡한 로직으로

오히려 알고리즘에 흥미를 느끼기도 전에 포기하게 만드는 부분들이 많이 있었다.

그러나 저자의 책은 어렵지 않은 적당한 수준과 예제들로 현업에서 꼭 만나게 되는 알고리즘적인 문제 해결 능력을 키우도록 유도해 주고 있어서, 이런 내용이 포기하지 않고 끝까지 책을 볼 수 있게 해주었던 것 같다.


 

 

네이버나 카카오 등 대기업들은 기본적으로 코딩 테스트를 통해서

알고리즘과 자료구조 능력을 확인하기 때문에

혹시라도 그런 기회가 나에게 온다면!?

한방에 합격!이라는 행복한 망상 회로를 돌려본다.

 

 

 
취소

댓글쓰기

저장
덧글 작성
0/1,000

댓글 수 0

댓글쓰기
첫 댓글을 작성해주세요.

PRIDE1