품목정보
출간일 | 2019년 08월 30일 |
---|---|
쪽수, 무게, 크기 | 412쪽 | 188*235*30mm |
ISBN13 | 9791161753447 |
ISBN10 | 1161753443 |
출간일 | 2019년 08월 30일 |
---|---|
쪽수, 무게, 크기 | 412쪽 | 188*235*30mm |
ISBN13 | 9791161753447 |
ISBN10 | 1161753443 |
『자바스크립트로 하는 자료 구조와 알고리즘』은 자료 구조와 알고리즘의 개념을 이해하고 이를 자바스크립트로 구현하는 방법에 관한 책이다. 자바스크립트 프로그래머라면 제대로 된 애플리케이션을 만들기 위해 알아야 할 핵심 자료 구조와 알고리즘을 다룬다. 본서를 통해 해시 테이블, 연결 리스트, 큐, 트리, 그래프 등의 핵심 자료 구조와 검색, 정렬, 재귀, 동적 프로그래밍, 비트 연산 등의 핵심 알고리즘을 배우고 이를 실제 자바스크립트로 구현해 볼 수 있다. 이러한 과정을 통해 자료 구조와 알고리즘에 대한 이해도를 높일 수 있을 뿐만 아니라 자바스크립트 구현 능력도 키울 수 있을 것이다. |
1장. 빅오 표기법 __빅오 표기법 기초 ____일반적인 예 __빅오 표기법 규칙 ____계수 법칙: “상수를 제거하라” ____합의 법칙: “빅오를 더하라” ____곱의 법칙: “빅오를 곱하라” ____다항 법칙: “빅오의 k승” __요약 __연습 문제 ____정답 2장. 자바스크립트의 독특한 특징 __자바스크립트 범위 ____전역 선언: 전역 범위 ____var를 사용해 선언하기: 함수 범위 ____let을 활용한 선언: 블록 범위 __등가와 형 ____변수형 ____참/거짓 확인 ____=== 대 == ____객체 __요약 3장. 자바스크립트 숫자 __숫자 체계 __자바스크립트 숫자 객체 ____정수 반올림 ____NumberEPSILON ____최대치 ____최소치 ____무한 ____크기 순서 ____숫자 알고리즘 ____소인수 분해 __무작위 수 생성기 __연습 문제 __요약 4장. 자바스크립트 문자열 __자바스크립트 문자열 기본 ____문자열 접근 ____문자열 비교 ____문자열 검색 ____문자열 분해 ____문자열 바꾸기 __정규 표현식 ____기본 정규 표현식 ____자주 사용하는 정규 표현식 ____숫자를 포함하는 문자 ____숫자만 포함하는 문자 ____부동소수점 문자 ____숫자와 알파벳만을 포함하는 문자 ____질의 문자열 __인코딩 __Base64 인코딩 __문자열 단축 __암호화 ____RSA 암호화 __요약 5장. 자바스크립트 배열 __배열 소개 ____삽입 ____삭제 ____접근 __반복 ____for (변수; 조건; 수정) ____for ( in ) ____for ( of ) ____forEach( ) __도움 함수 ____slice(begin,end) ____splice(begin,size,element1,element2) ____concat( ) ____length 속성 ____전개 연산자 __연습 문제 __자바스크립트 함수형 배열 메소드 ____map ____filter ____reduce __다차원 배열 __연습 문제 __요약 6장. 자바스크립트 객체 __자바스크립트 객체 속성 ____프로토타입 활용 상속 __생성자와 변수 __요약 __연습 문제 7장. 자바스크립트 메모리 관리 __메모리 누수 ____객체에 대한 참조 ____DOM 메모리 누수 ____window 전역 객체 ____객체 참조 제한하기 ____delete 연산자 __요약 __연습 문제 8장. 재귀 __재귀 소개 __재귀의 규칙 ____기저 조건 ____분할 정복 방식 ____대표적인 예: 피보나치 수열 ____피보나치 수열: 꼬리 재귀 ____파스칼의 삼각형 __재귀의 빅오 분석 ____점화식 ____마스터 정리 __재귀 호출 스택 메모리 __요약 __연습 문제 9장. 집합 __집합 소개 __집합 연산 ____삽입 ____삭제 ____포함 __기타 유틸리티 함수 ____교집합 ____상위 집합 여부 확인 ____합집합 ____차집합 __요약 __연습 문제 10장. 검색과 정렬 __검색 ____선형 검색 ____이진 검색 __정렬 ____거품 정렬 ____선택 정렬 ____삽입 정렬 ____빠른 정렬 ____빠른 선택 ____병합 정렬 ____계수 정렬 ____자바스크립트 내장 정렬 __요약 __연습 문제 11장. 해시 테이블 __해시 테이블 소개 __해싱 기법 ____소수 해싱 ____탐사 ____재해싱/이중 해싱 __해시 테이블 구현 ____선형 탐사 사용하기 ____이차 탐사 사용하기 ____선형 탐사를 활용해 이중 해싱 사용하기 __요약 12장. 스택과 큐 __스택 ____들여다보기 ____삽입 ____삭제 ____접근 ____검색 __큐 ____들여다보기 ____삽입 ____삭제 ____접근 ____검색 __요약 __연습 문제 13장. 연결 리스트 __단일 연결 리스트 ____삽입 ____값에 의한 삭제 ____헤드 항목 삭제 ____검색 __이중 연결 리스트 ____헤드에 항목 삽입하기 ____테일에 항목 삽입하기 ____헤드의 항목 삭제하기 ____테일의 항목 삭제하기 ____검색 __요약 __연습 문제 14장. 캐싱 __캐싱 이해하기 __LFU 캐싱 __LRU 캐싱 __요약 15장. 트리 __일반적인 트리 구조 __이진 트리 __트리 순회 ____선순위 순회 ____중순위 순회 ____후순위 순회 ____단계순위 순회 ____트리 순회 요약 __이진 검색 트리 ____삽입 ____삭제 ____검색 __AVL 트리 ____단일 회전 ____오른쪽 회전 ____이중 회전 ____트리 균형 잡기 ____삽입 ____AVL 트리 예제 종합 __요약 __연습 문제 16장. 힙 __힙에 대한 이해 ____최대 힙 ____최소 힙 __이진 힙 배열 인덱스 구조 ____삼투: 위로 아래로 이동 ____삼투 구현하기 ____최대 힙 예 __최소 힙 구현 완성 __최대 힙 구현 완성 __힙 정렬 ____오름차순 정렬(최소 힙) ____내림차순 정렬(최대 힙) __요약 __연습 문제 17장. 그래프 __그래프 기본 __무지향성 그래프 ____간선과 정점 추가하기 ____간선과 정점 삭제하기 __지향성 그래프 __그래프 순회 ____너비 우선 검색 ____깊이 우선 검색 __가중치가 있는 그래프와 최단 경로 ____가중치가 있는 간선을 지닌 그래프 ____다익스트라의 알고리즘: 최단 경로 __위상 정렬 __요약 18장. 고급 문자열 __트라이(접두사 트리) __보이어-무어 문자열 검색 __커누스-모리스-플랫 문자열 검색 __라빈-카프 검색 ____라빈 지문 ____실생활 적용 예 __요약 19장. 동적 프로그래밍 __동적 프로그래밍의 필요성 __동적 프로그래밍의 규칙 ____중복 부분 문제 ____최적 부분 구조 ____예: 걸음 수를 채우는 방법 __대표적인 동적 프로그래밍 예 ____배낭 문제 알고리즘 ____최장 공통 부분 수열 알고리즘 ____동전 교환 알고리즘 ____편집 거리 알고리즘 __요약 20장. 비트 조작 __비트 연산자 ____AND ____OR ____XOR ____NOT ____왼쪽 이동 ____오른쪽 이동 ____오른쪽 이동 후 0으로 채우기 __숫자 연산 ____덧셈 ____뺄셈 ____곱셈 ____나눗셈 __요약 |
에이콘 출판책들을 볼때마다 항상 느끼는 점이지만, 검수를 섬세하게 하지 못했다는 느낌이 들어요.
번역투는 없어서 좋았지만, 일단은 오탈자가 정말 정말 많습니다.
물론 에이콘 출판사의 정오표에서 오탈자를 알려주지만, 정오표에 없는 오탈자도 너무 많습니다.
1장부터 9장까지는 설명이 다소 부족하고 오탈자가 있지만, 어느정도 참고 볼만은 합니다.
10장 검색과 정렬에서는 전체적으로 설명이 빈약하고 오탈자가 많은데, 그 중에서도 버블 정렬은 코드 자체가 완전 잘못됬으며 계수 정렬의 경우에는 코드는 동작하지만 계수 정렬이라는 취지와는 맞지 않은 코드(11번째 줄 부터)가 적혀있습니다.
복습용으로 구입한 책인데, 일단 대충 이 책을 읽고 다른 언어로 작성된 책을 구입해서 읽어야 할 것 같습니다.
지금 5번째 챕터까지 봤는데,
이렇게 오타가 많은 책은 처음이다.
지금 전개연산자 부분을 보는데 전개연산자를 설명해놓고, 예제코드는
var array1 = [1,2,3,4,5];
Math.max(array1);
이렇게 나와있다. 그밑에 Math.min() 도 마찬가지..
이런 설명이나 예제 코드가 매 챕터 꼭 1-2개 씩 있었다.
또한 책 내부 디자인이나 편집이 복사집 제본책 수준이다.
예제 코드는 기본적인 들여쓰기나 띄어쓰기도 신경쓰지 않았다.
어떤 연산자는 띄어쓰고 어떤 연산자는 붙여쓰고,,,
어떤건 var numbers = [1, 2, 3, 4];
어떤건 var array1 = [1,2,3,4,5];
어떤건 var array1 = [1,2,3, 4,5];
매 챕터 뒤에 나와있는 연습문제의 코드와 실행결과도 다르다.
코드를 제대로 검증을 안했기 때문인 듯 하다. (p.100에서 19번째줄 실행해보길 바람)