[북리뷰] 누구나 자료 구조와 알고리즘

하수도키

·

2020. 12. 6. 22:21

728x90
반응형
SMALL

1~2달전에 이 책을 읽었는데 이제 리뷰를 쓴다.

자료구조, 알고리즘 비전공자인 나에게는 너무 어려운 내용들이다.

어려운 이유 중 하나는 필요할때 벼락치기식으로 공부하고 그 뒤로는 머리속에 남아있질 않고 증발해버린다.ㅠㅠ

그래서 1일 1알고리즘풀기를 해봤지만, 문제 이해 안되는것들도 많고, 문제를 어떻게 풀어야 될지 모르는 경우(1~2일 고민해봤지만..)가 대부분이었다.

그리고 프론트 개발하는데 알고리즘을 깊게 사용하지 않아도 실무에서 큰 문제가 없는 상태였다.(아마 내 시야가 너무 좁아져 있어서 모르는듯)

시니어 개발자로 가기 위해서는 자료 구조와 알고리즘에 대한 개념과 이해를 바탕으로 더 좋은 프로그래밍을 할 수 있다는 생각도 들었다.

결국, 책을 사서 한번 보자라고 생각해서 알고리즘 책 쇼핑을 했다..

 

그 중 1권이 누구나 자료 구조와 알고리즘이다.

www.yes24.com/Product/Goods/61941073

 

누구나 자료 구조와 알고리즘

사칙연산과 지수로만 이해하는 자료 구조와 알고리즘수학 용어와 전문 용어가 아니어도 이해한다이 분야의 책은 대부분 컴퓨터 공학 전공자를 대상으로 쓰였거나 고등학교 수학을 잘 안다고

www.yes24.com

yes24를 좋아해서 찾아봤는데 평점도 10점이니 기분좋게 구매했다.(yes24 광고 아닙니다.)

누구나 자료 구조와 알고리즘 목차

1장 자료 구조가 중요한 까닭
__1.1 배열: 기초 자료 구조
__1.2 읽기
__1.3 검색
__1.4 삽입
__1.5 삭제
__1.6 집합: 단 하나의 규칙이 효율성을 바꾼다
__1.7 마무리

2장 알고리즘이 중요한 까닭
__2.1 정렬된 배열
__2.2 정렬된 배열의 검색
__2.3 이진 검색
__2.4 이진 검색 대 선형 검색
__2.5 마무리

3장 빅 오 표기법
__3.1 빅 오: 단계 수 계산
__3.2 상수 시간과 선형 시간
__3.3 같은 알고리즘, 다른 시나리오
__3.4 세 번째 유형의 알고리즘
__3.5 로가리즘
__3.6 O(log N) 해석
__3.7 실제 예제
__3.8 마무리

4장 빅 오로 코드 속도 올리기
__4.1 버블 정렬
__4.2 버블 정렬 실제로 해보기
__4.3 버블 정렬 구현
__4.4 버블 정렬의 효율성
__4.5 이차 문제
__4.6 선형 해결법
__4.7 마무리

5장 빅 오를 사용하거나 사용하지 않는 코드 최적화
__5.1 선택 정렬
__5.2 선택 정렬 실제로 해보기
__5.3 선택 정렬 구현
__5.4 선택 정렬의 효율성
__5.5 상수 무시하기
__5.6 빅 오의 역할
__5.7 실제 예제
__5.8 마무리

6장 긍정적인 시나리오 최적화
__6.1 삽입 정렬
__6.2 삽입 정렬해보기
__6.3 삽입 정렬 구현
__6.4 삽입 정렬의 효율성
__6.5 평균적인 경우
__6.6 실제 예제
__6.7 마무리

7장 해시 테이블로 매우 빠른 룩업
__7.1 해시 테이블 소개
__7.2 해시 함수로 해싱
__7.3 재미와 이익, 특히 이익을 남길 유의어 사전 만들기
__7.4 충돌 해결
__7.5 훌륭한 충돌 조정
__7.6 실제 예제
__7.7 마무리

8장 스택과 큐로 간결한 코드 생성
__8.1 스택
__8.2 스택 다뤄보기
__8.3 큐
__8.4 큐 다뤄보기
__8.5 마무리

9장 재귀를 사용한 재귀적 반복
__9.1 루프 대신 재귀
__9.2 기저 조건
__9.3 재귀 코드 읽기
__9.4 컴퓨터의 눈으로 바라본 재귀
__9.5 재귀 다뤄보기
__9.6 마무리

10장 속도를 높이는 재귀 알고리즘
__10.1 분할
__10.2 퀵 정렬
__10.3 퀵 정렬의 효율성
__10.4 최악의 시나리오
__10.5 퀵 셀렉트
__10.6 마무리

11장 노드 기반 자료 구조
__11.1 연결 리스트
__11.2 연결 리스트 구현
__11.3 읽기
__11.4 검색
__11.5 삽입
__11.6 삭제
__11.7 연결 리스트 다뤄보기
__11.8 이중 연결 리스트
__11.9 마무리

12장 이진 트리로 속도 향상
__12.1 이진 트리
__12.2 검색
__12.3 삽입
__12.4 삭제
__12.5 이진 트리 다뤄보기
__12.6 마무리

13장 그래프로 뭐든지 연결하기
__13.1 그래프
__13.2 너비 우선 탐색
__13.3 그래프 데이터베이스
__13.4 가중 그래프
__13.5 데이크스트라의 알고리즘
__13.6 마무리

14장 공간 제약 다루기
__14.1 공간 복잡도에 빅 오 표기법 적용
__14.2 시간과 공간 트레이드오프
__14.3 마치면서

 

누구나 자료구조와 알고리즘

누구나 자료 구조와 알고리즘 리뷰

알고리즘 책 치고 우선 책이 얇아서 매우 기분이 좋았다.(두꺼운책은 기분이 좋지 않다.)

책을 펼쳐보니 약간의 컬러와 넓은 여백이 무척 마음에 들었다.

이 책에서는 무조건 순서대로 읽어야 된다. 각 장은 이전 장을 읽었다는 전제로 진행된다. 1장 봤다 3장봤다 15장보는 그런 책이 아니다.!!

세세하게 설명 하지 않지만 이해하기 쉽게 개념을 설명해준다.

 

시각화로도 잘 표현했고, 우선 비전공자인 나도 이해하기 쉽게 설명을 해준다.

역시 책 초반에는 재밌게 읽고 이해도 쉬웠지만 중후반 갈수록 집중력도 떨어지고 내 이해능력이 점점 떨어짐을 여전히 느끼고 있다.

그리고 이책은 자바스크립트, 파이썬, 루비 등의 코드로 번갈아 가면서 예제 코드를 보여주고 있다.

자바스크립트 예제 코드를 볼때는 이해하기 쉽지만 파이썬, 루비의 코드로 설명될때는 대략적으로 큰 줄기만 이해했다.

자료구조와 알고리즘에 대한 큰 줄기만을 우선 이해하고 자바스크립트로 된 알고리즘 책을 별도로 구매했기 때문에 이부분은 나에게 문제가 되지 않았다.

 

기억에 남는 내용은 빅오 표기법에 대한 지식이 없었는데 이걸 보고 시간복잡도, 공간복잡도에 대한 지식을 추가했습니다.

물론, 지금은 또 가물가물하지만 다시 찾아보게 되면 예전보다 훨씬 빠르게 이해할 수 있습니다. :)

 

가볍게 지하철이나 출퇴근하면서 읽기에는 좋습니다.

전공자들에게는 너무 쉽고 뭐 이런책이 다 있어 할 수도 있을것 같지만 간단하게 개념정리나 심심할때 기분 전환용으로 읽으면 좋을 것 같습니다.!

 

다음에는 다른 알고리즘 책 리뷰로 다시 찾아뵙겠습니다!

 

728x90
반응형
LIST