이미지 검색을 사용해 보세요
검색창 이전화면 이전화면
최근 검색어
인기 검색어

소득공제
코드와 그림으로 마스터하는 알고리즘
이 정도는 알아야만 Google에서 일할 수 있다
이상진
남가람북스 2016.11.02.
베스트
IT 모바일 top100 1주
가격
28,000
10 25,200
YES포인트?
1,400원 (5%)
5만원 이상 구매 시 2천원 추가 적립
결제혜택
카드/간편결제 혜택을 확인하세요

이미 소장하고 있다면 판매해 보세요.

  •  해외배송 가능?
  •  문화비소득공제 가능

이 분야의 이벤트

상세 이미지

책소개

목차

서문

이 책을 보는 방법
이 책의 구성
이 책의 구성 요소
학습 로드맵

01 들어가며

1.1. 이 책에서 다루는 알고리즘
1.2. 알고리즘의 성능 평가
1.2.1 시간 복잡도
1.2.2 점근적 표기: 빅-오 표기법
1.2.3 점근적 표기의 다른 방법들

02 정렬 알고리즘

2.1. 정렬의 개념
2.2. 정렬 알고리즘의 종류
2.3. 선택 정렬
2.3.1 선택 정렬의 과정
2.3.2 선택 정렬의 구현
2.3.3 선택 정렬의 특성
2.4. 퀵 정렬
2.4.1 퀵 정렬의 과정
2.4.2 퀵 정렬의 구현
2.4.3 퀵 정렬의 특성
2.5. 병합 정렬
2.5.1 병합 정렬의 과정
2.5.2 병합 정렬의 구현
2.5.3 병합 정렬의 특성
2.6. 연습 문제

03 해시

3.1. 해시의 개념
3.1.1 해시 함수
3.1.2 해시 검색
3.1.3 해시 검색의 과정
3.2. 해시 함수
3.2.1 나머지(제산: Division) 함수
3.2.2 접기(접지: Folding) 함수
3.2.3 중간 제곱 함수(Mid-square function)
3.2.4 숫자 분석 기반의 해시 함수
3.3. 첫 번째 충돌 해결 방법: 개방 주소법
3.3.1 선형 조사법
3.3.2 제곱 조사법
3.3.3 이중 해시
3.4. 해시 테이블의 추상 자료형
3.5. 해시 검색의 첫 번째 구현: 개방 주소법 사용
3.5.1 해시 테이블의 생성
3.5.2 자료 추가
3.5.3 자료 검색
3.5.4 자료 제거
3.5.5 기타
3.6. 두 번째 충돌 해결 방법: 체이닝
3.7. 해시 테이블의 두 번째 구현: 체이닝 사용
3.7.1 해시 테이블의 생성
3.7.2 자료 추가
3.7.3 자료 검색
3.7.4 자료 제거
3.8. 해시 검색의 성능 분석
3.8.1 키 값 밀도
3.8.2 적재 밀도
3.9. 연습 문제

04 균형 검색 트리

4.1. 이진 검색 트리
4.2. 다원 검색 트리
4.3. B-트리
4.4. B-트리의 연산
4.4.1 B-트리에서의 자료 추가
4.4.2 B-트리에서의 자료 제거
4.4.3 예제: 자료 추가 및 제거
4.5. B-트리의 구현
4.5.1 B-트리 생성
4.5.2 검색 연산
4.5.3 자료 추가
4.5.4 자료 제거
4.5.5 기타
4.6. 간단한 형태의 B-트리
4.6.1 2-3 트리
4.6.2 2-3-4 트리
4.7. B-트리의 변형
4.7.1 B+트리
4.7.2 B*트리
4.8. 연습 문제

05 그래프

5.1. 그래프 자료구조
5.2. 최단 경로 구하기
5.2.1. 하나의 시작점에서 구하기: Dijkstra(다이크스트라) 알고리즘
5.2.2 모든 시작점에서 경로 구하기: Floyd(플로이드) 알고리즘
5.2.3 도달 가능성 구하기
5.3. 최소 비용 신장 트리
5.3.1 신장 트리란?
5.3.2 최소 비용 신장 트리란?
5.3.3 크루스칼(Kruskal) 알고리즘
5.3.4 프림(Prim) 알고리즘
5.4 연습 문제

06 탐욕 알고리즘

6.1. 탐욕 알고리즘의 개념
6.2. 동전 거스름돈 문제
6.2.1 탐욕 알고리즘의 적용
6.2.2 탐욕 알고리즘의 구현
6.3. 부분 배낭 문제
6.3.1 탐욕 알고리즘의 적용
6.3.2 탐욕 알고리즘의 구현
6.4. 허프만 코딩
6.4.1 탐욕 알고리즘의 적용
6.4.2 탐욕 알고리즘의 구현
6.5. 연습 문제

07 분할 정복 알고리즘

7.1. 이진 검색을 통해 알아보는 분할 정복 알고리즘
7.2. 팩토리얼 문제
7.3. 가장 가까운 두 점 찾기 문제
7.3.1 분할 정복 알고리즘의 적용
7.3.2 분할 정복 알고리즘의 구현
7.4. 연쇄 행렬 곱셈 문제
7.4.1 연쇄 행렬 곱셈 문제란?
7.4.2 분할 정복 알고리즘의 적용: 행렬이 4개인 경우
7.4.3 일반적인 경우에 분할 정복 알고리즘의 적용
7.4.4 분할 정복 알고리즘의 구현
7.5 연습 문제

08 동적 계획법

8.1. 피보나치 수열로 알아보는 동적 계획법
8.2. 동전 거스름돈 문제
8.2.1 분할 정복법의 적용과 구현
8.2.2 동적 계획법의 적용
8.2.3 동적 계획법의 구현
8.3. 0-1 배낭 문제
8.3.1 분할 정복법의 적용과 구현
8.3.2 동적 계획법의 적용
8.3.3 동적 계획법의 구현
8.4. 편집 거리 문제
8.4.1 분할 정복법의 적용과 구현
8.4.2 동적 계획법의 적용
8.4.3 동적 계획법의 구현
8.5 연습 문제

09 백트래킹 알고리즘

9.1. 외판원 문제
9.1.1 백트래킹의 적용
9.1.2 백트래킹의 구현
9.2. 8퀸 문제
9.2.1 백트래킹의 적용
9.2.2 백트래킹의 구현
9.3. 미로 문제
9.3.1 백트래킹의 적용
9.3.2 백트래킹의 구현
9.4 연습 문제

연습문제 정답

찾아보기

저자 소개 1

서울대학교 산업공학과에서 학사, 석사 및 박사 학위를 받았으며, 현재는 (주)소만사에서 Endpoint 개발실장으로 기업용 보안 소프트웨어를 개발하고 있다. 핸디소프트와 삼성SDS에서 근무했으며, 저서로는 『정보 보안 가이드북』, 『코드와 그림으로 마스터하는 알고리즘』, 『자료구조 입문』, 『열혈강의 C 언어 정복 리얼 교과서』 등이 있다.

이상진의 다른 상품

관련 분류

품목정보

발행일
2016년 11월 02일
쪽수, 무게, 크기
508쪽 | 923g | 182*232*22mm
ISBN13
9791195484560

출판사 리뷰

이 책은 C 언어를 기본 구현 언어로 사용합니다. 따라서 C 언어에 대한 기초 문법과 개발 도구인 Visual Studio 혹은 XCode의 간단한 사용 방법을 익힌 분들이라면 충분히 이 책을 시작할 수 있습니다.
또한, 기본적인 자료구조(리스트, 스택, 큐 등)를 어느 정도 알고 있다고 가정합니다. 그래서 알고리즘의 설명에 꼭 필요한 사항이 아닌 이상 자료구조 자체에 대한 설명은 최소화하였습니다.

#. 누구를 위한 책인가요?

- 소프트웨어 개발에 관심 있거나 배우고 있는 고등학생, 대학생, 대학원생
- 개발 현장에서 일하고 있으며 알고리즘에 대해 알고 싶어하는 개발자
- IT 기업의 면접을 준비하고 있는 개발자

#. 이 책의 구성

1장 들어가며
알고리즘을 시작하기 전에 기본 지식을 배우는 부분입니다. 알고리즘의 개념 및 이 책에서 다루는 알고리즘의 종류와 성능 평가 방법 등을 다룹니다.

2장 정렬 알고리즘
알고리즘 중에서 가장 기본이 되는 정렬 알고리즘을 배웁니다. 선택 정렬을 먼저 배우고 이보다 효율적인 퀵 정렬과 병합 정렬을 소개합니다.

3-4장 검색 관련 알고리즘
3장과 4장에 걸쳐 찾고자 하는 자료를 빨리 검색하는 문제에 대한 알고리즘을 배웁니다. 3장에서는 계산을 통해서 자료를 찾는 해시 검색 알고리즘을, 4장에서는 검색 키 값을 비교하여 자료를 찾는 균형 검색 트리를 배웁니다. 이 책에서는 균형 검색 트리 중에서도 B-트리에 대해서 살펴보겠습니다.

5장 그래프 관련 알고리즘
5장에서는 그래프 자료구조를 활용한 알고리즘들을 살펴봅니다. 이러한 알고리즘 중에서 가장 대표적인 최단 경로를 구하는 알고리즘과 최소 신장 트리를 구하는 알고리즘을 배웁니다. 최단 경로 문제를 크게 시작점이 하나인 경우와 여러 개인 경우로 나눠 각 경우에 대한 대표적인 알고리즘으로 다이크스트라 알고리즘, 플로이드 알고리즘을 다룹니다. 아울러, 최소 신장 트리를 구하는 알고리즘으로는 크루스칼 알고리즘과 프림 알고리즘을 살펴보겠습니다.

6장 탐욕 알고리즘
6장에서는 문제의 각 단계에서 최선의 선택을 하여 문제를 해결하는 비교적 단순한 탐욕 알고리즘을 배웁니다. 또한, 동전 거스름돈 문제, 부분 배낭 문제, 압축 문제에 탐욕 알고리즘을 적용하여 실제 알고리즘으로 문제를 해결하는 방식을 살펴보겠습니다.

7장 분할 정복 알고리즘
7장에서는 하나의 큰 문제를 여러 개의 하위 문제로 쪼개서 차례로 해결하는 분할 정복 알고리즘을 배웁니다. 또한, 가장 가까운 두 점 찾기 문제와 연쇄 곱셈 행렬 문제에 분할 정복 알고리즘을 적용하여 실제 알고리즘으로 문제를 해결하는 방식을 살펴보겠습니다.

8장 동적 계획법
8장에서는 분할 정복 알고리즘과 같이 큰 문제를 작게 쪼개서 기존에 구한 값을 재활용하는 동적 계획법을 배웁니다. 또한, 동전 거스름돈 문제, 0-1 배낭 문제, 편집 거리 문제에 동적 계획법을 적용하여 실제 알고리즘으로 문제를 해결하는 방식을 살펴보겠습니다.

9장 백트래킹 알고리즘
9장에서는 문제의 답을 찾을 때까지 모든 가능성을 시도해 보는 백트래킹 알고리즘을 배웁니다. 또한, 외판원 문제, 8퀸 문제, 미로 문제에 백트래킹 알고리즘을 적용하여 실제 알고리즘으로 문제를 해결하는 방식을 살펴보겠습니다.

리뷰/한줄평1

리뷰

첫번째 리뷰어가 되어주세요.

한줄평

8.0 한줄평 총점

클린봇이 부적절한 글을 감지 중입니다.

설정