책소개
귀납적 사고를 통한 문제 해결 기법 훈련
알고리즘에 대한 지식을 기반으로 제대로 프로그래밍을 하는 이들뿐만 아니라, 알고리즘 속에 깃들어 있는 여러 가지 생각하는 방법, 자료구조, 테크닉을 통해 체계적으로 생각하는 훈련을 하고자 하는 모든 이들을 대상으로 합니다. 알고리즘의 설계와 분석을 활용하여 체계적으로 사고할 수 있는 빌딩 블록을 구축하여 컴퓨터 또는 관련 분야의 연구자 또는 개발자로서 갖춰야 할 지적 기반을 쌓을 수 있습니다.
저자소개
문병로
서울대학교 컴퓨터공학부 교수. 서울대학교 계산통계학과, KAIST 전산학과, 펜실베이니아 주립대학교에서 각각 학사 · 석사 ·박사 학위를 취득하였다. LG전자 중앙연구소 연구원, UCLA VLSI CAD Lab 박사후연구원, LG반도체 책임연구원을 거쳤다. 이론 연구의 현장 적용에 관심이 많아 2000년 초부터 연구실 벤처를 창업하여 알고리즘과 최적화 이론의 현장 접목을 시도해왔으며, 현재 문제 해결 분야와 유전 알고리즘 등의 공간 탐색 이론 및 응용을 연구하는 “최적화 및 금융공학 연구실”을 운영하고 있다. 주요 관심사는 난제의 속성, 이러한 문제들이 이루는 공간의 특성, 알고리즘의 설계 · 분석, 알고리즘의 기업적 응용, 유전 알고리즘, AI 혁명을 이끌고 있는 트랜스포머의 내부 해킹과 응용이다. 전공 저서로는 『쉽게 배우는 자료구조 with 파이썬/자바』, 『쉽게 배우는 알고리 즘』, 『쉽게 배우는 유전 알고리즘』이 있다. 교양 부문 저서로는 계량적 주식 투자에 관한 『문병로 교수의 메트릭 스튜디오』가 있다. 국제 저널과 학술대회에 150여 편의 논문을 발표하였다.
목차
머리말
이 책의 사용 설명서
Chapter 01 알고리즘이란
01 알고리즘은 문제 해결 과정을 묘사하는 것
02 알고리즘은 생각하는 방법을 훈련하는 것
03 알고리즘은 자료구조의 확장
Drift 알고리즘 단어의 유래 : 알-콰리즈미
Chapter 02 알고리즘 설계와 분석의 기초
01 몇 가지 기초 사항들
1 알고리즘 분석의 필요성
2 알고리즘의 수행 시간
3 재귀(자기호출)와 귀납적 사고
4 알고리즘으로 어떤 문제를 푸는가
02 점근적 표기
1 Θ-표기법
2 O-표기법
3 Ω-표기법
★ 03 점근적 표기의 엄밀한 정의
1 O-표기법
2 Ω-표기법
3 Θ-표기법
4 o-표기법
5 ω-표기법
요약/연습문제
Drift 에너지의 천재 크누스
Chapter 03 점화식과 알고리즘 복잡도 분석
01 점화식
02 점화식의 점근적 분석 방법
1 반복 대치
2 추정 후 증명
3 마스터 정리
요약/연습문제
Drift 천재 알고리즘의 재현 : 스트라센 알고리즘의 재고
Chapter 04 정렬
01 기본적인 정렬 알고리즘
1 선택 정렬Selection Sort
2 버블 정렬Bubble Sort
3 삽입 정렬Insertion Sort
02 고급 정렬 알고리즘
1 병합 정렬Merge Sort
2 퀵 정렬Quick Sort
3 힙 정렬Heap Sort
03 비교 정렬 시간의 하한
04 특수 정렬 알고리즘
1 기수 정렬Radix Sort
2 계수 정렬Counting Sort
요약/연습문제
Drift 재귀와 관계 중심의 사고방식
Chapter 05 선택 알고리즘
01 평균 선형 시간 선택 알고리즘
02 최악의 경우에도 선형 시간을 보장하는 선택 알고리즘
요약/연습문제
Chapter 06 검색 트리
01 레코드, 키의 정의 및 검색 트리
02 이진 검색 트리
1 이진 검색 트리에서 검색
2 이진 검색 트리에서 삽입
3 이진 검색 트리에서 삭제
03 레드 블랙 트리
1 레드 블랙 트리에서 삽입
2 레드 블랙 트리에서 삭제
3 레드 블랙 트리의 작업 성능 분석
04 B-트리
1 B-트리에서 검색
2 B-트리에서 삽입
3 B-트리에서 삭제
4 B-트리의 작업 성능 분석
★ 05 다차원 검색 트리
1 KD-트리
2 KDB-트리
3 R-트리
4 그리드 파일
요약/연습문제
Chapter 07 해시 테이블
01 해시 테이블 : 검색 효율의 극단
02 해시 함수
1 나누기 방법
2 곱하기 방법
03 충돌 해결
1 체이닝
2 개방 주소 방법
04 해시 테이블에서 검색 시간 분석
요약/연습문제
Chapter 08 집합의 처리
01 연결 리스트를 이용한 집합의 처리
1 작업의 개요
2 수행 시간
02 트리를 이용한 집합의 처리
1 기본 원리
2 연산의 효율을 높이는 방법
요약/연습문제
Drift 추상화와 은유
Chapter 09 동적 프로그래밍
01 어떤 문제를 동적 프로그래밍으로 푸는가
02 행렬 경로 문제
03 돌 놓기 문제
04 행렬 곱셈 순서 문제
05 최장 공통 부분 순서LCS
요약/연습문제
Chapter 10 그래프
01 그래프
02 그래프의 표현
1 인접 행렬을 이용한 방법
2 인접 리스트를 이용한 방법
3 인접 배열과 인접 해시 테이블
03 너비 우선 탐색BFS과 깊이 우선 탐색DFS
04 최소 신장 트리
1 프림 알고리즘
2 크루스칼 알고리즘
3 안전성 정리
05 위상 정렬Topological Sorting
06 최단 경로
1 다익스트라 알고리즘(음의 가중치를 허용하지 않는 경우 )• 331
2 벨만-포드 알고리즘(음의 가중치를 허용하는 경우)
3 모든 쌍 최단 경로 알고리즘
4 사이클이 없는 그래프의 최단 경로
07 강연결 요소
요약/연습문제
Chapter 11 그리디 알고리즘
01 전형적인 그리디 알고리즘의 구조
02 그리디 알고리즘으로 최적해가 보장되지 않는 예
1 이진 트리의 최적합 경로 찾기
2 보따리 문제
3 동전 바꾸기
03 그리디 알고리즘으로 최적해가 보장되는 예
1 최소 신장 트리
2 회의실 배정 문제
3 그 밖의 예
04 매트로이드 : 그리디 알고리즘으로 최적해가 보장되는 공간 구조
1 매트로이드의 정의와 예
2 매트로이드의 확장과 포화
3 매트로이드 구조이면 그리디 알고리즘으로 최적해 보장
★ 4 문제 공간 탐색 관점에서 본 매트로이드
요약/연습문제
Chapter 12 문자열 매칭
01 원시적인 매칭 방법
02 오토마타를 이용한 매칭
03 라빈-카프 알고리즘
★ 04 KMP 알고리즘
05 보이어-무어 알고리즘
요약/연습문제
Chapter 13 NP-완비
01 문제의 종류
02 Yes/No 문제와 최적화 문제
03 NP
04 다항식 시간 변환
05 NP-완비
06 NP-완비 문제들
07 NP-하드를 최적화 문제로 확장하기
★ 08 근사해 구하기
★ 09 현상금 걸린 문제들
요약/연습문제
Drift 비운의 천재 알란 튜링과 정지 문제
Chapter 14 상태 공간 트리의 탐색
01 상태 공간 트리
02 백트래킹
1 미로 찾기 문제
2 색칠 문제
03 한정 분기
04 A* 알고리즘
1 최단 경로 찾기 문제
2 TSP
요약/연습문제
Drift 공간 탐색과 끌개
출판사리뷰
알고리즘 목차
알고리즘 2-1 병합 정렬
알고리즘 4-1 선택 정렬
알고리즘 4-2 버블 정렬
알고리즘 4-3 삽입 정렬
알고리즘 4-4 병합 정렬
알고리즘 4-5 퀵 정렬
알고리즘 4-6 분할
알고리즘 4-7 힙 만들기
알고리즘 4-8 힙 정렬
알고리즘 4-9 기수 정렬
알고리즘 4-10 계수 정렬
알고리즘 5-1 평균 선형 시간 선택 알고리즘
알고리즘 5-2 최악의 경우 선형 시간 선택 알고리즘
알고리즘 6-1 이진 검색 트리에서 검색
알고리즘 6-2 이진 검색 트리에서 삽입 스케치
알고리즘 6-3 이진 검색 트리에서 삽입
알고리즘 6-4 이진 검색 트리에서 삽입(비재귀적 버전)
알고리즘 6-5 이진 검색 트리에서 삭제 스케치
알고리즘 6-6 이진 검색 트리에서 삭제
알고리즘 6-7 B-트리에서 삽입 스케치
알고리즘 6-8 B-트리에서 삭제 스케치
알고리즘 7-1 체이닝을 사용하는 해시 테이블에서 작업
알고리즘 7-2 개방 주소 방법
알고리즘 8-1 트리를 이용한 집합의 처리에서 Make-Set, Union, Find-Set
알고리즘 8-2 랭크를 이용한 Union과 Make-Set
알고리즘 8-3 경로 압축을 이용한 Find-Set
알고리즘 9-1 피보나치 수 (재귀호출)
알고리즘 9-2 피보나치 수 (동적 프로그래밍 1)
알고리즘 9-3 피보나치 수 (동적 프로그래밍 2)
알고리즘 9-4 행렬 경로 문제 (재귀호출)
알고리즘 9-5 행렬 경로 문제 (동적 프로그래밍)
알고리즘 9-6 돌 놓기 문제 (재귀호출)
알고리즘 9-7 돌 놓기 문제 (동적 프로그래밍)
알고리즘 9-8 행렬 곱셈 순서 문제 (재귀호출)
알고리즘 9-9 행렬 곱셈 순서 문제 (동적 프로그래밍)
알고리즘 9-10 최장 공통 부분 순서 길이( 재귀호출)
알고리즘 9-11 최장 공통 부분 순서 길이( 동적 프로그래밍)
알고리즘 10-1 BFS 알고리즘
알고리즘 10-2 DFS 알고리즘
알고리즘 10-3 프림 알고리즘(버전 1)
알고리즘 10-4 프림 알고리즘(버전 2)
알고리즘 10-5 크루스칼 알고리즘
알고리즘 10-6 위상 정렬 알고리즘 1
알고리즘 10-7 위상 정렬 알고리즘 2
알고리즘 10-8 다익스트라 알고리즘
알고리즘 10-9 벨만-포드 알고리즘
알고리즘 10-10 플로이드-워샬 알고리즘
알고리즘 10-11 사이클이 없는 유향 그래프DAG에서 최단 경로 구하기
알고리즘 10-12 강연결 요소 구하기
알고리즘 11-1 전형적인 그리디 알고리즘
알고리즘 11-2 프림 알고리즘
알고리즘 11-3 그리디 알고리즘
알고리즘 11-4 이진 트리의 그리디 탐색
알고리즘 11-5 보따리 문제를 위한 그리디 알고리즘
알고리즘 11-6 프림 알고리즘
알고리즘 11-7 회의실 배정을 위한 그리디 알고리즘
알고리즘 11-8 최대 가중치 합을 구하는 그리디 알고리즘
알고리즘 11-9 매트로이드에서 개선형 그리디 알고리즘
알고리즘 12-1 원시적인 매칭 알고리즘
알고리즘 12-2 매칭을 체크하는 알고리즘
알고리즘 12-3 수치화를 이용한 매칭 알고리즘
알고리즘 12-4 라빈-카프 알고리즘
알고리즘 12-5 KMP 알고리즘
알고리즘 12-6 보이어-무어-호스풀 알고리즘
알고리즘 14-1 미로 찾기 문제를 위한 백트래킹 알고리즘
알고리즘 14-2 색칠 문제를 위한 백트래킹 알고리즘
알고리즘 14-3 그래프에서 최단 경로를 찾는 A* 알고리즘
독자리뷰
책을 구매하여 독학중에 있습니다. 독학하기에 어려움을 느껴 연습문제 솔루션을 받아보고 싶어 글 남깁니다.
가능하시다면 jyong2018@naver.com 로 부탁드리겠습니다. 좋은 책 써주셔서 감사합니다.
dpduddhkd662@naver.com 답안 좀 보내주세요ㅠㅜ
이책 공부하는데 연습문제 풀이가 거의 절대적으로 중요한것 같습니다.
그런데 해답과 풀이과정이 없어 애로사항이 많네요.
해답및풀이과정 빨리 올려주세요
해답및풀이과정만 올려준다면 별점 만점 드리겠습니다.
tybam@naver.com으로 연습문제 해답 부탁드립니다.
이 책으로 알고리즘 처음 공부중 입니다.
연습문제 정답을 알고싶습니다.
kp9808@naver.com
정답파일 요청드립니다.
안녕하세요 이책으로 현재 공부를 하고 있습니다. 그러나 연습문제의 솔루션이 없다는 것이 안타까운 점이였고 이에 리뷰에 연습문제 솔루션을 요청 드립니다.
tmdcks965@naver.com 으로 보내주시면 감사하겠습니다.
연습문제를 풀어도 제가 제대로 푼지를 확인할 방법이 없습니다.
가능하시다면 nhyeoli@naver.com 으로 연습문제의 답안지를 요구드립니다.
독학하려고 샀는데 연습 문제를 풀고 맞았나 틀렸나 확인이 너무 어려웁니다..
답지 보내주세여 ㅠㅠ
dlgkdms_7889@naver.com
ckguswns13@naver.com로 부탁드립니다 해답지가 없어서 맞는지 틀렸는지 확인을 못하겠네요
이 책으로 알고리즘을 독학하고 있는 학생입니다.
답지 미제공으로 인해 불편함을 느끼고 있습니다.
답지를 이메일로 따로 받아볼 수 있을까요?
답을 알 수 없으니 이해를 제대로하고 문제를 알맞게 풀었는지 궁금해 리뷰작성합니다.
책을 구매하여 독학중에 있습니다. 독학하기에 어려움을 느껴 연습문제 솔루션을 받아보고 싶어 글 남깁니다.
가능하시다면 dspark0328@naver.com 로 부탁드리겠습니다. 좋은 책 써주셔서 감사합니다.
안녕하세요. 연습문제 솔루션 부탁드립니다. 제 이메일주소는 dyl0115@naver.com 입니다. 좋은 하루 되세요.
연습문제를 풀고 해답이 없어 풀이를 할 수가 없습니다... 해답지 받을수 있을 까요..? tjddntkd@naver.com
어떻게 해야 답지를 받을수 있을까요...?
gr14161@naver.com으로 보내주실수 있나요?
학생 입장은 고려하지 않은 책
플러스의 정의만 알려준 학생에게 자리수가 다른 두 정수의 덧셈, 두개 이상의 여러 정수들의 합산과 같은 난이도의 문제를 연습문제로 낸다.
답은 거의 찾아볼 수 없으며 찾더라도 정말 맞는 답인지 알 수 없다. 블로그에서 해설과 답을 올리면 출판사가 이를 삭제조치하는 것인지는 모르겠지만 정보량이 없다.
moxley98@naver.com 로 답지 좀 보내주시면 좋겠습니다.
틀린 부분이 어떤 부분인지 알아야 발전도 하는거 아닐까요?
tdat97@naver.com
내용은 잘 정리되어 있고 현재 복학하고 독학하는 저처럼 초보자가 보기엔 좋습니다
그러나 연습문제는 어렵더군요.
iamsy703@naver.com
연습문제 해설지 좀 부탁드리겠습니다.
수고하세요
알고리듬을 처음 공부하시는 분들은 다소 어려울 수 있습니다.
이 책의 연습문제랑 다 보는데 거의 3개월 걸렸습니다.
프로그램 실력이 없는 분들에게는 다소 어려울 수 있습니다.
다른 책들 알고리듬 보다 다소 어려웠지만, 마음 독하게 먹고 독학하고자 하는 분들에게는 추천드립니다.
독학중인데 답이 없어서 불편합니다.. 답지 보내드리면 감사하겠습니다.
psy090656@likelion.org
psy090656@naver.com 감사합니다
dlwogus210@naver.com
문제를 푸는데 해설지가 없어 답답합니다 ㅠㅠ 해답지가 필요한데 gus11als@naver.com 으로 보내주세요.
독학중인데 연습문제 해설이 없어서 확인을 못하겠습니다..
dltlaos14@naver.com 으로 해설 부탁드리겠습니다ㅜㅜ
감사합니다
현재 독학중인데,
연습문제 풀이가 없어 난감할 때가 있습니다.
jaeheon209@naver.com 으로 연습문제 풀이 부탁 드립니다.
감사합니다.
연습문제를 풀면서 맞게 풀었는지, 확인이 안되어 답답합니다.
답지 her0807@naver.com 으로 보내주시면 감사하겠습니다
내용이 다 좋고 문제를 열심히 풀었지만 답안이 나오지않아서 답확인이 어렵습니다.
shn06138@naver.com
으로 답안 보내주시면 감사하겠습니다.
연습문제를 풀어도 답을 알수없으니 답답합니다. 가능하시다면 rnddmstlf@naver.com으로 답지 부탁드립니다. 감사합니다.
공부하고 연습문제를 풀었는데 어디가 틀린부분인지 확인할 수 없어서 굉장히 답답합니다 ! psb8335@naver.com 여기로 답지 보내주시면 감사하겠습니다 !!
연습문제를 풀었는데 답이 없어서 공부하는데 어려움이 있습니다. 좋은책 내주셔서 감사드립니다. 연습문제 해답부탁드립니다.
2060700@naver.com 입니다!!
수업과정에 따로 연습문제 풀이가 없어 혼자풀려고 해도 답을 몰라서 공부하기 어렵습니다
등록된 이메일으로 해설지 보내주시면 감사하겠습니다
아무리 찾아봐도 답이 없네요.. 스스로 답을 못 맞춰보면 무슨 의미가 있나요... skdud0369@naver.com 연습문제 답 좀 보내주세요..
Maduee2@naver.com 대학 강의를 들으면서 푸는데도 답지는 필요합니당 ㅜ
답이 궁금하시다면 킹병로 교수님의 알고리즘 수업시간에 질문하십쇼!
답지부탁드립니다. 스스로 공부하는데 답을 알 수 없어서 불편합니다.
혼자 공부 중인데 답지가 없어서 불편하네요.
stw00219@naver.com으로 답지 좀 보내주시면 감사하겠습니다!
연습문제 답지를 받고 싶어요ㅠㅠ 공부하는데 어려움이 있네요ㅠㅠㅠ
ohi07@naver.com으로 보내주시면 정말 감사하겠습니다.
답지나 솔루션이 없어 확인하고 싶습니다. dirmtk@gmail.com으로 보내주시면 감사합니다.
duqql10@naver.com
이쪽메일로 보내주셨으면 좋겠습니다.
책 잘 쓰고 있습니다. 그런데 답지가 없어 답이 맞는 지 모르겠네요 ㅠ 혹시 답지가 있으시다면 uu303040@naver.com 으로 보내주시면 감사하겠습니다.
some58@nate.com
제 메일주소입니다. 답지 보내주세요~~^^
책 구매해서 혼자 수업진도 따라가면서 보고 있는데요..!
답지가 없어서 답을 알 수 가 없네요,, 답지좀 부탁드립니다..!
jasmin2544@naver.com
이 책을 사용하고 있는데 독학이라....
책을 잘 써주셔서 감사한데 혹시 답지까지 pdf로 주시면 감사하겠습니다.
혹시 이메일로 보내주실 수도 있을 것 같아서 이메일로 남깁니다.
snskaka8080@gmail.com
연습문제 답지가 없으니 답이 맞는 아닌지 몰라서 불편하네요. 연습문제 답지좀 theqoeo@naver.com으로 보내주시면 감사하겠습니다.
책 내용은 정말 좋아요. 그런데 혼자 공부하는 사람에겐 연습문제 답지가 없어서, 제가 쓴 답이 맞는지 틀렸는지 알 수가 없네요.
가능하시다면 lh453@naver.com 으로 답지 보내주시길 바랍니다.
책을 구매한 사람입니다.
답지가 없어 불편합니다. 답지좀 보내 주세요.
deachu03@naver.com
문제를 풀고도 답을 알지 못하는 이 고구마 100개를 물없이 먹는 답답함... 답지가 필요합니다 ㅜ 답지가 있다면 kokoxg2@naver.com 로 보내주시면 감사하겠습니다 ! 참고로 4월22일에 책을 구매했습니다 ㅎㅎ
답지가 없으니 피드백을 못하네요 ths7802@naver.com 여기로 보내주세요
답지가 없어서 답을 못맞추네요
rndkfka98@naver.com 으로 답지파일좀 보내주세요
답지가 없어서 답을 맞춰볼 수가 없습니다.
pdf파일로 보내주시면 감사하겠습니다.
seria123@hanmail.net
문제 솔루션 좀 보내주세요
jahoynim@naver.com
이 책을 사용하고 있는데 독학이라 답을 비교할 수 없는 답답함이 있습니다.
책을 잘 써주셔서 감사한데 혹시 답지까지 pdf로 주시면 감사하겠습니다.
혹시 이메일로 보내주실 수도 있을 것 같아서 이메일로 남깁니다.
chanp5660@naver.com
추천도서