메뉴 바로가기 검색 및 카테고리 바로가기

한빛미디어

독자리뷰

깊은 내용이 마음에 들어요! 공부하기 좋은 학습서

kye3***

|

2021-05-22

쓰면서 익히는 알고리즘과 자료구조

노트에 직접 알고리즘 문제 해결 과정을 쓰면서 알고리즘과 자료구조의 개념을 이해하는 학습법 안내 도서

  • 저자 : 윤대석
  • 출간 : 2021-03-29


<사담>

알고리즘과 자료구조에 대한 기본기가 부족해서 이 책을 받았다. 

사실 집에 Do it 시리즈의 알고리즘 학습 책이 있는데도, 그것과 같은 부류인 이 책을 제공받기로 선택했다. 내가 워낙 기본기가 없어서 선택할 수 있는 책이 한정적이다... ㅜㅡㅜ

 

사실 알고리즘 학습을 거의 멈췄다. 시간을 많이 투자해야 맞는데, 멈췄다. (반성타임)

학습을 미루고 미루다보니 지금은 '여름방학에 빡세게 하지 뭐>_<' 하는 핑계가 크다.

사실 지금 또 기말고사 시즌이라 학습할 타이밍은 아니고.. 정말 종강 하자마자 알차게 준비하려 계획한다.


 

곧 여름방학이니까 일단 지금은 책을 프리뷰하려고 한다.

마침 다른 알고리즘+자료구조 학습 책이 있으니 어떤 부분에 차이점이 있는지 두 책을 비교해볼 것이다. 

 

 

 

 

 

'쓰면서 익히는 알고리즘과 자료구조'에 대한 서평을 다른 책과 비교하여 작성해보도록 하겠다.

책을 구매할 때에도 여러 책을 비교하며 사는 것처럼 말이다.

 

 

ㅡ먼저 알려드리는 결론:

 

책을 구매하고자 이런 서평을 읽는 분들이 계실텐데, 도서 선택에 도움이 될 만한 정보를 드리겠다. 

"일단 갓 입문하는 사람이 아니고 알고리즘, 자료구조를 접해본 사람이라면 둘 중 취향에 맞는 것을 선택해도 되겠으나, 많은 용어 자체가 생소한 입문자는 닥 Do it을 선택"

  왜냐하면, 예를 들어서 '배열'이라는 전체적인 개념을 설명할 때, '쓰익알자'는 단 6줄과 도해 하나로 간단히 언급하고 넘어가는 반면, Do it에서는 일단 '배열'을 모르고 있다는 전제 하에 마치 선생님처럼 차근차근 설명하고 있다. 그 과정에서 깔끔한 예시와 단계적 설명을 보인다. 이처럼 '배열'이라는 전체적인 개념을 먼저 이해시키고 가려고 노력하는 책이 Do it이다.

  그러니까 정말 용어가 생소한 초보, 입문자가 아니라면 취향껏 골라도 될 것 같다. 다만, 쓰면서 익히는 알고리즘과 자료구조가 조금 더 깊은 정보가 담겨 있다. 

  

두 책의 예상 독자는 분명히 다르다.

비교 대상이 아니라고 생각하면서도 비교하는 이유는, 서로 다른 책 스타일을 보여드리기 위함이다. 

그리고 두 책의 예상 독자가 다르다고 해도, 나는 두 책과 인터넷의 도큐먼트 등을 모두 참고하며 공부할 것이다.

 


1. 권장하고 있는 학습방향의 차이 (책의 구성)

책의 구성이 확연히 다르다. 이 부분에서 '쓰면서 익히는 알고리즘과 자료구조'가 새롭게 느껴졌다. 그럼 두 책의 구성을 작성해보겠다. 

 

- 쓰면서 익히는 알고리즘과 자료구조: '노트 레이아웃'

이 책에서는 '노트 레이아웃'을 사용하기를 권장하는데, 대략적 구조는 다음과 같다. 

제한사항, 범위 등 유의사항 코드 작성
아이디어, 복잡도 등 접근방법
테스트 케이스 검토

 

위와 같이 문제사항을 검토하고 충분히 생각한 뒤에 설계한 아이디어에 따라서 코드를 작성하게 된다. 충분히 고민하고 코드를 작성하도록 유도하는 것이 매력적이었다. 

 

  솔직히 나는 이러한 방식이 낯설면서도 마음에 들었다. 사실 혼자 공부하면서 충분히 고민해보는 것, 문제를 풀기 전에 방향을 꼼꼼히 설계해 보는 것이 은근히 어렵다. 가끔 진도 나가기에 급급해질 때가 있는데, 그럴 때는 설렁설렁 지나치게 되는 부분이 많다. 하지만 쓰익알자는 그런 위험을 방지하는 책의 구성이다. 그래서 나는 쓰익알자의 방식이 굉장히 마음에 들었다.  

 

 

- Do it! 자료구조: '실습 예제 -> 연습 문제 -> 보충 수업'

실습 예제로 기반을 탄탄히 다질 수 있고, 그 후 연습문제로 더욱 단단히 만들 수 있다. 또한 보충수업에서는 그와 관련된 개념을 학습한다.

이러한 학습 패턴은 코딩 연습 뿐만 아니라 여러 분야에서도 널리 쓰이는 방법이다. 그만큼 습득하기 좋고, 빠른 이해를 돕고 효율적이다. Do it 알고리즘+자료구조에서도 직접 손으로 코딩하기, 따라하며 습득하기를 강조한다. 일단 문제 수 자체가 많아서 정말 책에 있는 예제, 문제를 차근차근 성실히 밟아간다면 실력 향상은 보장될 것 같은 느낌.

 


2. 목차의 차이

 

처음 두 책을 비교하자고 마음먹었을 때, 핵심적인 알고리즘을 익히는 거니까 뭐 목차는 비슷비슷할 거라고 생각했다. 그러나 꽤 달라서 조금 흠칫했다..

 

일단 아래는 큰 목차이다. 쓰익알자의 큰 장은 7개로, Do it이 11개인 것보다는 수는 더 적다. 하지만 내용 자체는 결코 심플하지 않다. 책에 따라 덜 배우고 더 배우고의 걱정은 안해도 될 것 같다. 

 

쓰면서 익히는 알고리즘과 자료구조

1. 배열
2. 문자열
3. 연결 리스트
4. 스택과 재귀
5. 큐
6. 트리
7. 동적 프로그래밍
8. 정렬 알고리즘
+ 부록
A 알고리즘 문제 제공 사이트
B 알고리즘 연습을 위한 노트 방법
C 파이썬을 이용한 문제 풀이
D 알고리즘 학습을 위한 사이트 소개

 

 

Do it 알고리즘+자료구조

1. 기본 알고리즘
2. 기본 자료구조
3. 검색
4. 스택과 큐
5. 재귀 알고리즘
6. 정렬
7. 집합
8. 문자열 검색
9. 리스트
10. 트리

11. 해시 


 

아래 사진을 보면 각 도서의 목차 구성의 느낌이 올 것이다. 

 

위: 쓰익알자 / 아래: Do it

 


3. 지은이

항상 서평을 작성할 때나, 책을 고를 때나 항상 지은이를 중요하게 생각한다. 

(모르는 사람이지만, 지은이 정보를 꼭 참고한다.)

<쓰면서 익히는 알고리즘과 자료구조>의 지은이는 '윤대석'님!

 

그리고 지은이의 말도 꼭 읽어본다.

책의 구성과 관련된 <지은이의 말> 속의 내용 중,

 

ㅡ 필자는 이 책에 알고리즘 문제 해결을 위해 가장 최적화된 해결책을 바로 제시하지 않고, 다양한 접근법을 고민해보고 차근차근 단계별로 풀이하는 과정을 담고자 했다. 

 

이런 언급이 있다. 사실 최적화된 해결책을 익혀서 확장하는 것도 정말 좋은 방법이겠지만, 지은이 윤대석님은 고민하는 단계별 풀이를 강조하고 있다. (노트 레이아웃이라는 방법을 사용하는 것에서도 고민과 방향을 강조하는 것이 느껴진다.)

 

문제에 급하게 도전하기보다는 문제 해결의 방향을 가장 먼저 차분히 그려보는 태도가 나에게 꼭 필요하다. 이런 부분에서 윤대석님이 지향하는 학습 방법이 나에게 적절하다고 생각한다. 

 

 


4. 그 외 마음에 드는 부분:

 

아직 이 책으로 공부해보지 않아서 정확한 장단점을 체감하지는 못했다. 그러나 꼼꼼히 살펴봤고, 가지고 있는 책과 비교해서 최선을 다해 프리뷰했다. 그 결과 분명히 이 책만의 차별점과 장점을 볼 수 있었다. 

 

그럼 언급하지 않은 장점을 간단히 나열해보겠다.

 

ㅡ 효율과 관련된 부분을 항상 제시한다. 시간 복잡도 O를 항상 언급하는 것이 마음에 들었다.  

그럼 언급하지 않은 장점을 간단히 나열해보겠다.

 

ㅡ 효율과 관련된 부분을 항상 제시한다. 시간 복잡도 O를 항상 언급하는 것이 마음에 들었다.  

ㅡ 무작정 예제나 코드를 제시하지 않고, '아이디어'를 상세하게 검토하게끔 하는 구성이 좋았다.

ㅡ 옳은 방향으로 충분히 생각해볼 수 있도록 생각의 방향을 친절하게 정리해준다.

 


  어떤 책으로 공부하든지 습득은 본인의 몫이지만, 잘 정리된 책은 학습효율을 높인다. 특히 새로운 것이나 어색한 것을 공부하려고 할 때 거의 책의 흐름을 따라가며 지식을 얻는 편이다. 이 책을 프리뷰해보니 마음에 꽤 들어서 내가 아끼는 책꽂이에 둘 것이다. 


  "한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다."
출처: https://splendidlolli.tistory.com/319 [가을에 태어난 마초강아지]

닫기

해당 상품을 장바구니에 담았습니다.이미 장바구니에 추가된 상품입니다.
장바구니로 이동하시겠습니까?