길벗·이지톡

도서 IT전문서/IT입문서 프로그래밍/오픈소스
상식으로 이해하는 자료 구조와 알고리즘! 누구나 자료 구조와 알고리즘
정 가
16,000원
I S B N
9791160505061
출 간
2018-06-30
분 량
308쪽
지 은 이
제이웬그로우
난 이 도
관계없음
옮 긴 이
심지현
부 록
예제 소스

사칙연산과 지수로만 이해하는 자료 구조와 알고리즘

수학 용어와 전문 용어가 아니어도 이해한다
이 분야의 책은 대부분 컴퓨터 공학 전공자를 대상으로 쓰였거나 고등학교 수학을 잘 안다고 가정하고 있다. 쉽게 설명했다는 책도 전문 용어로 가득하다. 비전공자나 수학적 기초가 약한 독자는 전문 용어에 두려움을 느끼며 이 주제를 이해할 만큼 자신이 똑똑하지 않다고 느끼며 이 주제를 회피한다. 그러나 자료 구조와 알고리즘은 대부분 상식선에서 이해할 수 있다. 상식이 통하는 설명으로 자료 구조와 알고리즘을 이해해보자.

프로그래밍의 핵심 스킬을 이해한다
자료 구조와 알고리즘은 프로그래밍의 핵심 스킬이다. 더 빠른 코드, 더 효율적인 코드를 작성하려면 반드시 알아야 하는 사고 방식이 자료 구조와 알고리즘에 담겨 있다. 추상적인 개념만 설명하는 대신 실생활에서 마주할 수 있는 상황을 제시하며 자료 구조와 알고리즘을 적용하는 방법을 보여준다. 자료 구조와 알고리즘은 개념만 이해하면 어떤 언어로도 구현할 수 있다는 것도 보여준다. 이 책에서는 자바스크립트, 루비, 파이썬으로 된 예제를 제시한다.

자료 구조와 알고리즘을 선택하는 방법을 배운다
전공 교재는 자료 구조와 알고리즘을 암기하고 시험만 볼 뿐이다. 입사 면접에서는 어떤 문제를 두고 배열, 연결 리스트, 해시 중에 무엇을 선택해야 하는지, 왜 그게 최적의 방법인지 묻는다. 자료 구조를 선택하는 방법, 선택한 자료 구조가 코드의 성능에 어떤 영향을 미치는지 설명하므로 암기된 단편적인 지식이 아닌 연결된 지식을 가르치고, 입사 면접을 준비할 때도 참고할 수 있게 했다. 

목차

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 마치면서
더보기접기

저자

ㆍ지은이 제이웬그로우

지은이 소개
세상을 코딩하는 법을 가르치는 데 전념하고 있는 전문 교육자이자 개발자이다. 코딩 부트캠프와 실습을 가르치는 Actualize의 설립자이자 CEO이다. "누구나 코딩할 수 있다(Anyone Can Learn To Code)"라는 교육 회사에서 온라인으로 코딩을 가르치고 있으며, 고등학교 컴퓨터 과학 커리큘럼, 기업체 교육 훈련을 운영하고 있다.

ㆍ옮긴이 심지현

옮긴이 소개
이화여대 컴퓨터공학과를 졸업하고, KAIST 대학원 전산과에서 데이터베이스 전공으로 석사 학위를 취득했다. 데이터베이스 외에 온톨로지(Ontology), 개인화 검색 등을 연구했으며 졸업 후 네이버에서 검색 서버 설계 및 개발 실무 경험을 쌓다가 현재는 검색 연구실에서 검색 모델링과 추천 시스템 관련 연구를 진행 중이다.

연관 프로그램

아래 프로그램은 길벗출판사가 제공하는 것이 아닙니다.
무료로 사용할 수 있는 정보를 안내해 드리니, 지원이 필요하면 해당 프로그렘 제작사로 문의해 주세요.