본인이 공부할 목적으로 책인덱스를 짜보았으나, 공유차원에서 포스팅합니다.
현재는 간단히 목차소개와 영역별 저의 짧은 견해를 달아봅니다.
추후 블로그에 태그기능을 넣게 된다면(개발중),
이 책 관련하여 섹터별 소개 및 코드샘플을 작성하면서,
여러분과 함께 알고리즘 및 자료구조를 공부하는 공간으로 만들어보겠습니다.
서론
- 각 유명 IT 회사별 면접 노하우 및 그 지향하는 전체적인 인재 지향틀
- 빅오표기법에 대해 설명
- 면접관 앞에서 흔히 하기 쉬운 코딩 실수들
- 코딩을 짤 때 최적화된 6단계 코딩 방법(BUD, Bottleneck work/Unneccessary work/Duplicated work)
- 병목현상,불필요작업,중복작업 제거하는 요령
앞부분 핵심 내용
- 코딩인터뷰/코딩면접은 기본기에 충실해야 한다.
- 중첩문, 재귀문에서 빅오표기법(시간) 계산하는 방법은 알아둘만 하다.
- 자료구조 - 연결리스트(Linked Lists) / 트리,트라이(Tries),그래프 / 스택&큐 / 힙(Heaps) / Vector,ArrayList / 해시테이블
- 알고리즘 - 너비 우선 탐색(Breadth-First Search) / 깊이 우선 탐색 (Depth-First Search) / 이진탐색 / 병합정렬(Merge Sort) / 퀵정렬(Quick Sort)
- 개념 - 비트 조작 / 메모리(스택vs힙) / 재귀 / 동적 프로그래밍 / big-O 시간 & 공간
본론
- 각 주제별로 몇 가지 파트를 나눈 뒤 하위 개념들에 대한 원론적인 설명
- 예제소개 및 코딩문제를 줌. 그에 대한 힌트 또는 해법 제시(문제 풀이)
페이지 수가 900페이지이지만 코드들이 많기 때문에 책 내용은 그렇게 복잡하지는 않다.
다루는 주제들
- 자료구조(배열&문자열, 연결리스트, 스택&큐, 트리&그래프)
- 개념과 알고리즘(비트조작, 수학, 객체지향설계, 재귀와 동적프로그래밍, 시스템설계 및 규모확장성, 정렬과 탐색, 테스팅)
- 지식기반문제(C&C++, JAVA, 데이터베이스, 스레드&락)
해법 소개
고급 주제에 관한 소개 및 예시
- 유용한수학
- 위상정렬
- 다익스트라 알고리즘
- 해시테이블 충돌해결방법
- 선형탐사법을 이용한 개방주소법
- 라빈-카프 부분 문자열 탐색 알고리즘
- AVL 트리
- 레드-블랙 트리
- 맵리듀스
고급주제까지는 안봐도 될듯
- 코드 라이브러리(HasnMapList<T,E>)
- TreeNode(이진탐색트리)
- LinkedListNode(연결리스트)
- Trie & TrieNode(트리와 트리노드)
읽어주셔서 감사합니다.🖐