책 소개
앱과 함께 직관적으로 배우는 알고리즘 학습서!
그림으로 기억하는 그래프 탐색 & 정렬 리스트 수록!
출시 1년도 안 되어 50만 회 이상 다운로드되었고, ‘애플이 선택한 2016년 베스트 앱’으로도 선정된 ‘Algorithms’를 기반으로 만든 최적의 알고리즘 입문서!
어떤 언어를 사용해서 프로그램을 작성하든 알고리즘은 반드시 필요합니다. 그러나 현장에서 배우기가 쉽지 않으며, 그렇다고 해서 혼자 학습하기도 어려운 분야였던 게 사실입니다. 그래서 이 책이 기획되었습니다. 이 책은 알고리즘을 배우는 데 최고로 평가받고 있는 ‘Algorithms’ 앱을 토대로 특별히 고안된 책입니다.
처음 배울 때는 이해하기 쉽고, 다시 배울 때도 쉽게 내용을 떠올릴 수 있도록 구성했습니다. 26개의 핵심 알고리즘과 7개의 데이터 구조 모두를 그림으로 표현하여 개념이나 구조를 직관적으로 이해할 수 있습니다. 이 책을 통해 여러분은 좋은 프로그램을 작성하기 위해 반드시 알아야 할 알고리즘에 대한 기초를 탄탄히 다질 수 있을 겁니다.
이 책의 특징
- 26개의 알고리즘 + 7개의 데이터 구조를 그림으로 설명
- 전면을 컬러로 편집하여 그림의 동선을 따라가기 쉽게 구성
- 각 알고리즘의 개념이나 계산 효율, 문제점 등도 설명
작가 소개
저 : 이시다 모리테루
도쿄에서 활동하고 있는 프리랜서 엔지니어다. 2011년 교토대 대학원 석사과정을 수료한 후에 몇몇 벤처 기업에서 일하다 프리랜서로 독립하였다. 직접 제작한 엔지니어용 학습 앱인 ‘Algorithms’을 2016년에 출시하였는데, 채 1년도 안 되어 전 세계 50만 다운로드를 달성하였고 ‘애플이 선택한 2016년 베스트 앱’으로도 선정되었다.
저 : 미야자키 쇼이치
교토대 학술정보센터 조교수로 있다. 1998년 큐슈대 대학원 박사 과정을 수료하였다. 1998년부터 교토대 대학원 정보공학연구소의 연구원으로 일했으며, 2002년부터 현재까지 교수로 재직하고 있다. 알고리즘이나 계산 복잡성 이론, 특히 최근에는 온라인 알고리즘이나 근사 알고리즘 등을 연구하고 있다.
역 : 김완섭
네덜란드 ITC에서 Geoinformation for Disaster Risk Management 석사 학위를 취득했다. 약 9년간 일본과 한국의 기업에서 IT 및 GIS/LBS 분야 업무를 담당했으며, 일본에서는 세콤(SECOM) 계열사인 파스코(PASCO)에서 일본 외무부, 국토지리정보원 같은 정부기관을 대상으로 한 시스템 통합(SI) 업무를 담당했다. 이후 야후 재팬으로 직장을 옮겨 내비게이션 지도 개발 담당 시니어 엔지니어로 근무했으며, 한국으로 돌아와 SK에서 내비게이션 지도 데이터 담당 매니저로 근무했다. 현재는 싱가포르의 한 국제 연구 기관에서 echnical Specialist로 근무 중이다. 저서로는 《나는 도쿄 롯폰기로 출근한다》가 있으며, 역서로는 《인공지능 70》, 《처음 만나는 자바스크립트》, 《다양한 언어로 배우는 정규표현식》, 《그림으로 공부하는 IT 인프라 구조》, 《그림으로 공부하는 시스템 성능 구조》 등 20여 종이 있다. 블로그를 통해 IT 번역 관련 이야기와 싱가포르 직장 생활을 소개하고 있다.
목 차
0-1 알고리즘이란? 002
0-2 계산 시간을 측정하는 방법 007
CHAPTER 1 데이터 구조 009
1-1 데이터 구조란? 010
1-2 리스트 014
1-3 배열 018
1-4 스택 022
1-5 큐 024
1-6 해시 테이블 026
1-7 힙 034
1-8 이진 탐색 트리 038
CHAPTER 2 정렬 045
2-1 정렬이란? 046
2-2 버블 정렬 048
2-3 선택 정렬 052
2-4 삽입 정렬 054
2-5 힙 정렬 058
2-6 병합 정렬 062
2-7 퀵 정렬 066
CHAPTER 3 배열의 탐색 073
3-1 선형 탐색 074
3-2 이진 탐색 076
CHAPTER 4 그래프 탐색 079
4-1 그래프란? 080
4-2 너비 우선 탐색 084
4-3 깊이 우선 탐색 088
4-4 벨먼-포드 알고리즘 092
4-5 다익스트라 알고리즘 098
4-6 A* 106
CHAPTER 5 보안 알고리즘 111
5-1 보안과 알고리즘 112
5-2 암호의 기본 116
5-3 해시 함수 120
5-4 공통키 암호 방식 124
5-5 공개키 암호 방식 128
5-6 하이브리드 암호 방식 136
5-7 디피-헬만 키 교환법 140
5-8 메시지 인증 코드 148
5-9 전자 서명 156
5-10 전자 인증서 162
CHAPTER 6 클러스터링 169
6-1 클러스터링이란? 170
6-2 k-means 알고리즘 172
CHAPTER 7 기타 알고리즘 177
7-1 유클리드 178
7-2 소수 판별법 182
7-3 페이지랭크 186
7-4 하노이의 탑 194
- 단순 변심인 경우 : 상품 수령 후 7일 이내 신청
- 상품 불량/오배송인 경우 : 상품 수령 후 3개월 이내, 혹은 그 사실을 알게 된 이후 30일 이내 반품 신청 가능
| 반품사유 | 반품 배송비 부담자 |
|---|---|
| 단순변심 | 고객 부담이며, 최초 배송비를 포함해 왕복 배송비가 발생합니다. 또한, 도서/산간지역이거나 설치 상품을 반품하는 경우에는 배송비가 추가될 수 있습니다. |
| 고객 부담이 아닙니다. |
| 진행 상태 | 결제완료 | 상품준비중 | 배송지시/배송중/배송완료 |
|---|---|---|---|
| 어떤 상태 | 주문 내역 확인 전 | 상품 발송 준비 중 | 상품이 택배사로 이미 발송 됨 |
| 환불 | 즉시환불 | 구매취소 의사전달 → 발송중지 → 환불 | 반품회수 → 반품상품 확인 → 환불 |
- 결제완료 또는 배송상품은 1:1 문의에 취소신청해 주셔야 합니다.
- 특정 상품의 경우 취소 수수료가 부과될 수 있습니다.
| 결제수단 | 환불시점 | 환불방법 |
|---|---|---|
| 신용카드 | 취소완료 후, 3~5일 내 카드사 승인취소(영업일 기준) | 신용카드 승인취소 |
| 계좌이체 |
실시간 계좌이체 또는 무통장입금 취소완료 후, 입력하신 환불계좌로 1~2일 내 환불금액 입금(영업일 기준) |
계좌입금 |
| 휴대폰 결제 |
당일 구매내역 취소시 취소 완료 후, 6시간 이내 승인취소 전월 구매내역 취소시 취소 완료 후, 1~2일 내 환불계좌로 입금(영업일 기준) |
당일취소 : 휴대폰 결제 승인취소 익월취소 : 계좌입금 |
| 포인트 | 취소 완료 후, 당일 포인트 적립 | 환불 포인트 적립 |
- 단순변심으로 인한 반품 시, 배송 완료 후 7일이 지나면 취소/반품 신청이 접수되지 않습니다.
- 주문/제작 상품의 경우, 상품의 제작이 이미 진행된 경우에는 취소가 불가합니다.
- 구성품을 분실하였거나 취급 부주의로 인한 파손/고장/오염된 경우에는 취소/반품이 제한됩니다.
- 제조사의 사정 (신모델 출시 등) 및 부품 가격변동 등에 의해 가격이 변동될 수 있으며, 이로 인한 반품 및 가격보상은 불가합니다.
- 뷰티 상품 이용 시 트러블(알러지, 붉은 반점, 가려움, 따가움)이 발생하는 경우 진료 확인서 및 소견서 등을 증빙하면 환불이 가능하지만 이 경우, 제반 비용은 고객님께서 부담하셔야 합니다.
- 각 상품별로 아래와 같은 사유로 취소/반품이 제한 될 수 있습니다.
| 상품군 | 취소/반품 불가사유 |
|---|---|
| 의류/잡화/수입명품 | 상품의 택(TAG) 제거/라벨 및 상품 훼손으로 상품의 가치가 현저히 감소된 경우 |
| 계절상품/식품/화장품 | 고객님의 사용, 시간경과, 일부 소비에 의하여 상품의 가치가 현저히 감소한 경우 |
| 가전/설치상품 | 전자제품 특성 상, 정품 스티커가 제거되었거나 설치 또는 사용 이후에 단순변심인 경우, 액정화면이 부착된 상품의 전원을 켠 경우 (상품불량으로 인한 교환/반품은 AS센터의 불량 판정을 받아야 합니다.) |
| 자동차용품 | 상품을 개봉하여 장착한 이후 단순변심의 경우 |
| CD/DVD/GAME/BOOK등 | 복제가 가능한 상품의 포장 등을 훼손한 경우 |
| 상품의 시리얼 넘버 유출로 내장된 소프트웨어의 가치가 감소한 경우 | |
| 노트북, 테스크탑 PC 등 | 홀로그램 등을 분리, 분실, 훼손하여 상품의 가치가 현저히 감소하여 재판매가 불가할 경우 |










