누구나 자료구조와 알고리즘 개정2판
제이 웬그로우 / 길벗
목차 보기
1장 자료 구조가 중요한 까닭
__1.1 자료 구조
__1.2 배열: 기초 자료 구조
____1.2.1 자료 구조 연산
__1.3 속도 측정
__1.4 읽기
__1.5 검색
__1.6 삽입
__1.7 삭제
__1.8 집합: 단 하나의 규칙으로 효율성이 달라진다
__1.9 마무리
__1.10 연습 문제
2장 알고리즘이 중요한 까닭
__2.1 정렬된 배열
__2.2 정렬된 배열의 검색
__2.3 이진 검색
____2.3.1 코드 구현: 이진 검색
__2.4 이진 검색 대 선형 검색
____2.4.1 깜짝 퀴즈
__2.5 마무리
__2.6 연습 문제
3장 빅 오 표기법
__3.1 빅 오: 원소가 N개일 때 몇 단계가 필요할까?
__3.2 빅 오의 본질
____3.2.1 빅 오의 본질 더 파고들기
____3.2.2 같은 알고리즘, 다른 시나리오
__3.3 세 번째 유형의 알고리즘
__3.4 로가리즘
__3.5 O(logN) 해석
__3.6 실제 예제
__3.7 마무리
__3.8 연습 문제
4장 빅 오로 코드 속도 올리기
__4.1 버블 정렬
__4.2 버블 정렬 실제로 해보기
____4.2.1 버블 정렬 구현
__4.3 버블 정렬의 효율성
__4.4 이차 문제
__4.5 선형 해결법
__4.6 마무리
__4.7 연습 문제
5장 빅 오를 사용하거나 사용하지 않는 코드 최적화
__5.1 선택 정렬
__5.2 선택 정렬 실제로 해보기
____5.2.1 선택 정렬 구현
__5.3 선택 정렬의 효율성
__5.4 상수 무시하기
__5.5 빅 오 카테고리
____5.5.1 실제 예제
____5.5.2 중요한 단계
__5.6 마무리
__5.7 연습 문제
6장 긍정적인 시나리오 최적화
__6.1 삽입 정렬
__6.2 삽입 정렬 실제로 해보기
____6.2.1 삽입 정렬 구현
__6.3 삽입 정렬의 효율성
__6.4 평균적인 경우
__6.5 실제 예제
__6.6 마무리
__6.7 연습 문제
7장 일상적인 코드 속 빅 오
__7.1 짝수의 평균
__7.2 단어 생성기
__7.3 배열 예제
__7.4 평균 섭씨 온도 구하기
__7.5 의류 상표
__7.6 1 세기
__7.7 팰린드롬 검사기
__7.8 모든 곱 구하기
____7.8.1 여러 데이터 세트 다루기
__7.9 암호 크래커
__7.10 마무리
__7.11 연습 문제
8장 해시 테이블로 매우 빠른 룩업
__8.1 해시 테이블
__8.2 해시 함수로 해싱
__8.3 재미와 이익, 특히 이익을 남길 유의어 사전 만들기
__8.4 해시 테이블 룩업
____8.4.1 단방향(one-directional) 룩업
__8.5 충돌 해결
__8.6 효율적인 해시 테이블 만들기
____8.6.1 훌륭한 충돌 조정
__8.7 해시 테이블로 데이터 조직
__8.8 해시 테이블로 속도 올리기
____8.8.1 배열 부분 집합
__8.9 마무리
__8.10 연습 문제
9장 스택과 큐로 간결한 코드 생성
__9.1 스택
__9.2 추상 데이터 타입
__9.3 스택 다뤄보기
____9.3.1 코드 구현: 스택 기반 코드 린터
__9.4 제약을 갖는 데이터 구조의 중요성
____9.4.1 스택 요약
__9.5 큐
____9.5.1 큐 구현
__9.6 큐 다뤄보기
__9.7 마무리
__9.8 연습 문제
10장 재귀를 사용한 재귀적 반복
__10.1 루프 대신 재귀
__10.2 기저 조건
__10.3 재귀 코드 읽기
__10.4 컴퓨터의 눈으로 바라본 재귀
__10.5 파일 시스템 순회
__10.6 마무리
__10.7 연습문제
대상 독자 보기
● 이제 막 기초 프로그래밍을 배웠지만 컴퓨터 과학 기초를 배움으로써 더 나은 코드를 작성하고 프로그래밍 지식과 기술을 키우고 싶은 개발자
● 정규적인 컴퓨터 과학 수업을 받은 적이 없는 독학 개발자(또는 공부했지만 다 까먹은 개발자)면서 자료 구조와 알고리즘의 힘을 활용해 더 확장 가능하고 간결한 코드를 작성하고 싶은 개발자
● 자료 구조와 알고리즘을 쉽고 명확하게 설명한 교재를 원하는 컴퓨터 과학도. 어떤 “고전적인” 교재를 사용하든 이 책을 훌륭한 보조 교재로 사용할 수 있다.
● 경력상 활용한 적이 거의 없지만 다가올 기술 면접시험을 위해 자료 구조와 알고리즘 개념을 복습해야 하는 개발자
리뷰를 미루다 이제야 쓴다. 자료구조나 알고리즘은 자격증 필기 정도의 단순히 스택이 뭔지 큐가 뭔지 하는 단순히 외우는 식으로 하다보니 너무 어렵기만 하다. 코딩 테스트도 자바 기초 학습중에는 굉장히 의지가 있었는데, 멋모르는 의지였고. 지금은 코딩테스트는 내가 할 수 없는 영역? 이라고 생각하기에 이르렀다. 아무래도 자바 이후 웹 개발 과정이 시작되면서 자료구조나 알고리즘을 통해 문제를 풀어볼 시간이 없었고, 해야할 의지도 없었던 게 사실이다.
그래도 국비과정을 수료하면, 다시 개발자로서 자료구조나 알고리즘은 학습해야 한다고 생각해서
일종의 부채감? 같은 것으로 이 책을 고르게 되었던 것 같다.
책의 목차도 그렇지만 출판사에서 표현한 대상 독자를 보고서 너무 공감했기 때문이었다.
☞ 이제 막 기초 프로그래밍을 배웠지만 컴퓨터 과학 기초를 배움으로써
더 나은 코드를 작성하고 프로그래밍 지식과 기술을 키우고 싶은 개발자
☞ 경력상 활용한 적이 거의 없지만 다가올 기술 면접시험을 위해
자료 구조와 알고리즘 개념을 복습해야 하는 개발자
이거 완전 내얘기 인가? 했다. 결국 이 책을 고르긴 했는데, 아직 조금밖에 읽지 못했다.
이 책의 특징이라고 하면.. 책 목차를 보고서 '음 '스택' RGRG~, '빅오표기법' 아 이거 어려웠는데~ , 재귀카테고리가 뭐지?' 이런 식으로 몇몇 키워드는 익숙하게 느낄 수도 있고, 아니면 오 이건 아예 모르는 거네 했는데.
나처럼 목차에 키워드만 딱 보고 195페이지로 휘리릭 넘겨서 읽어볼 수도 있는데,
책에 서론을 보니 이 책은 그렇게 읽는게 아니라고 한다.
이 책은 꼭 순서 대로 읽어야 하는 책 이라고 한다. 목차만 쏙 찾아 읽는 나로써는 이 책을 완독해야 한다는 부담도 있다만, 차근차근 이해해야 하는 게 정석인가보다. 편법없는 공부! 다행히 개발 서적치고 많이 두껍진 않아서 들고 다닐 수 있을 정도다. 책의 첫 인상으로 표지가 참 마음에 들었는데, 안에 그림으로 설명된 부분이 꽤 많다. 책갈피가 아직 100페이지 이전에 꽂혀있지만, 국비 수료후에 꼭 완독하리라는 결심이다. 이 책을 읽으면서 자료구조를 공부하고, 알고리즘 문제도 찾아 풀도록 해야겠다.
이만 책을 훝어본 수준의 책 리뷰를 마친다. 다음엔 꼭 완독 리뷰를 이어 올리겠다.
'개발지식 > 세미나및교육' 카테고리의 다른 글
XXIT 스트릿우먼데브파이터 일명 스데파 참석 후기 (2) | 2021.12.19 |
---|