책소개
실무에서의 문제 해결 능력을 키우는 고전 알고리즘 프로젝트이 책은 실무에서 만날 수 있는 문제를 알고리즘을 사용해 효과적으로 해결하는 방법을 알려준다. 모든 예제를 파이썬으로 구현했으며, 장마다 알고리즘 적용 사례와 연습 문제를 제공한다. 피보나치 수열, 압축, 하노이탑, 이진 검색과 같은 알고리즘부터 k-평균 군집화, 유전 알고리즘, 신경망, 보드게임에 이르기까지 다양한 예제를 풀며 문제 해결 능력을 향상할 수 있다.
저자소개
샹플랭 대학의 컴퓨터 과학 및 혁신 센터의 조교수다. 숙련된 소프트웨어 개발자이자 『Classic Computer Science Problems in Swift』(Manning, 2018)와 『Dart for Absolute Beginners』(Apress, 2014)의 저자다. 다트머스 대학교에서 경제학 학사학위와 컴퓨터 과학 석사학위를 취득했다.
목차
CHAPTER 1 작은 문제1.1 피보나치 수열1.2 압축 알고리즘1.3 깨지지 않는 암호화1.4 파이 계산하기1.5 하노이탑1.6 적용사례1.7 연습문제CHAPTER 2 검색 문제2.1 DNA 검색2.2 미로 찾기2.3 선교사와 식인종 문제2.4 적용사례2.5 연습문제CHAPTER 3 제약 충족 문제3.1 제약 충족 문제 프레임워크 구현하기3.2 호주 지도 색칠 문제3.3 여덟 퀸 문제3.4 단어 검색3.5 SEND MORE=MONEY3.6 회로판 레이아웃3.7 적용사례3.8 연습문제CHAPTER 4 그래프 문제4.1 지도와 그래프4.2 그래프 프레임워크 구축4.3 최단 경로 찾기4.4 네트워크 구축 비용 최소화4.5 가중치 그래프에서 최단 경로 찾기4.6 적용사례4.7 연습문제CHAPTER 5 유전 알고리즘5.1 생물학적 배경5.2 제네릭 유전 알고리즘5.3 간단한 방정식5.4 SEND MORE=MONEY 다시 보기5.5 최적화 리스트 압축5.6 유전 알고리즘에 대한 도전5.7 적용사례5.8 연습문제CHAPTER 6 k-평균 군집화6.1 준비 운동6.2 k-평균 군집화 알고리즘6.3 나이와 경도에 따른 주지사 군집화6.4 마이클 잭슨 앨범 음원 길이 군집화6.5 k-평균 군집화 문제와 확장6.6 적용사례6.7 연습문제CHAPTER 7 신경망 문제7.1 생물학 기초7.2 인공 신경망7.3 구현 준비7.4 신경망 구축7.5 분류 문제7.6 신경망의 속도 향상7.7 신경망 문제와 확장7.8 적용사례7.9 연습문제CHAPTER 8 적대적 탐색8.1 보드게임 구성 요소8.2 틱택토8.3 커넥트포8.4 알파-베타 가지치기를 넘어서8.5 적용사례8.6 연습문제CHAPTER 9 기타 문제9.1 배낭 문제9.2 외판원 문제9.3 전화번호 니모닉9.4 적용사례9.5 연습문제부록 A 용어 사전 부록 B 참고 자료 부록 C 타입 힌트 간단한 소개