퍼즐로 이해하는 알고리즘

퍼즐로 이해하는 알고리즘

$25.36
Description
“생각의 힘을 키우는 가장 좋은 방법, 다양한 퍼즐 즐겁게 배우기!”
다양한 문제를 해결하기 위해선 적절한 알고리즘을 판단하거나 때로는 직접 해결하는 능력이 필요합니다. 지식을 온전히 내 것으로 만들기 위해선 직접 실천해보는 것도 중요합니다. 본서에서는 ‘템퍼즐’ ‘스도쿠’ ‘4×4 오델로’ 등 다양한 퍼즐의 풀이를 설명하며, 효율적인 알고리즘을 즐겁게 배워 나갈 수 있습니다. 각 알고리즘 개요는 그림으로 충분히 해설했으며 수학적 해법 등 심화 내용도 담았습니다. 프로그래밍 경시대회에 도전하고 싶은 분들에게도 많은 도움이 될 것입니다.
저자

오츠키겐스케

2014년도쿄대학교대학원정보과학기술대학원석사과정수료.현재주식회사NTT데이터수리시스템고문,주식회사아르고식(공동창업)집행임원.알고리즘을비롯한컴퓨터과학의여러분야의계몽활동에종사하고있고,수리최적화및머신러닝을활용한수리컨설팅업무경험도다수있다.저서로는『問題解決力を鍛える!アルゴリズムとデータ構造』(講談社,2020)가있다.

목차

들어가며
이책에대해
감사의말
퍼즐베타리더추천사

제1장알고리즘입문
1-1텐퍼즐(tenpuzzle):완전탐색
텐퍼즐
퍼즐에도전
텐퍼즐을푸는알고리즘
[칼럼]스택과큐Part1
[칼럼]컴퓨터의계산능력
텐퍼즐프로그램적용
텐퍼즐파고들기
정리
퍼즐정답
[칼럼]알고리즘과프로그램의차이
[더알아보기]트럼프게임‘사칙’

1-2고마치잔:재귀함수
고마치잔
직접풀어보기
고마치잔을푸는알고리즘
[칼럼]재귀호출의효율화
고마치잔프로그램적용
정리
[더알아보기]고마치잔문제만들기

1-3충식산:가지치기
충식산
퍼즐에도전
충식산을푸는알고리즘
가지치기
[칼럼]조합폭발
충식산프로그램요소준비
충식산프로그램적용
정리
퍼즐정답
[더알아보기]충식산만들기

제2장그래프알고리즘
2-1스도쿠:깊이우선탐색1
스도쿠
스도쿠의수소개
그래프
[칼럼]쾨니히스베르크다리와4색정리
스도쿠를푸는알고리즘
스도쿠프로그램의요소준비
스도쿠프로그램적용
고속화를위한궁리
정리
퍼즐정답
[칼럼]스도쿠의최소힌트개수는17
[더알아보기]스도쿠제작:언덕오르기방법

2-2복면산:깊이우선탐색2
복면산
[칼럼]퍼즐거장소개1:듀드니
퍼즐에도전
[칼럼]단어퍼즐로복면산만들기
복면산프로그램적용
복면산을만드는알고리즘
리스트업방식에따른복면산메이커적용
와일드카드방식에따른복면산메이커적용
정리
퍼즐정답
[더알아보기]충식산과복면산의융합

2-3미로:너비우선탐색
미로
[칼럼]퍼즐이란무엇인가?
미로와관련된퍼즐
풀어볼문제설정
미로프로그램적용
[칼럼]샘로이드의‘해먹퍼즐’
그래프상의너비우선탐색
[칼럼]스택과큐Part2
기름나누기문제응용
정리
퍼즐정답
[더알아보기]바둑돌줍기

제3장심화알고리즘
3-115퍼즐:반복적깊이증가A*
15퍼즐
[칼럼]샘로이드의‘14-15퍼즐’15퍼즐
직접풀어보기
[칼럼]일반적인15퍼즐
15퍼즐프로그램방침
반복심화깊이우선탐색
반복적깊이증가A
15퍼즐프로그램적용
15퍼즐프로그램
정리
[칼럼]루빅스큐브의신의수(God’sNumber)

3-24×4오델로:게임탐색
4×4오델로
‘게임을푼다’는것
각게임의분석상황
직접풀어보기
게임해석을그래프탐색으로생각한다
게임탐색적용
4×4오델로프로그램적용
정리

3-3편집거리:동적계획법
편집거리
퍼즐에도전
[칼럼]편집거리의실제응용
편집거리를그래프로나타내기
동적계획법
편집거리프로그램적용
[칼럼]알고리즘의시간복잡도
정리
퍼즐정답
[칼럼]다익스트라알고리즘

3-4도미노채우기:매칭
도미노채우기
[칼럼]퍼즐거장소개2:로이드
직접풀어보기
[칼럼]테트로미노
이분매칭문제로귀착
이분매칭문제해법
도미노채우기프로그램적용
정리

마치며
북가이드
찾아보기

출판사 서평

“생각의힘을키우는가장좋은방법”
퍼즐은논리적사고로여러번의시행착오를거쳐즐겁게풀어내는문제입니다.오래전부터전세계에서머리를쓰는지능형게임으로사랑받았습니다.찬찬히생각에몰입할때가려졌던문제구조가조금씩보이기시작해마침내답이훤히보이는재미,아무리머리를굴려도종잡을수없던답이궁리를거듭한끝에섬광처럼번뜩일때의
기쁨.퍼즐은끝까지포기하지않은사람에게값진성취감을선사합니다.

한편알고리즘은문제를푸는일종의도구입니다.우리는알고리즘의힘을빌려수많은문제를해결합니다.내비게이션은‘현위치에서목적지로가는경로를찾아’문제를해결하고,diff명령어는‘주어진두문서의내용을비교’해문제를풉니다.방법에상관없이‘같은방법으로’풀고자하는문제의답을찾아낸다는점이알고리즘의위대한특징입니다.스도쿠를푸는알고리즘은바르게적용하기만하면프로그램에어떤스도쿠문제를입력하든답을출력합니다.

이책에서는퍼즐프로그램을만들어보면서알고리즘으로사고하는능력을즐겁게연마합니다.각절은다양한퍼즐을소개하며시작합니다.먼저퍼즐을손으로풀어보며흥미롭게두루두루살펴봅니다.충식산,스도쿠,오델로등예전부터널리알려진퍼즐은단지재미만이아니라알고리즘으로사고하는힘을기르는데도움이되는요소가여럿있습니다.가령스도쿠를풀때‘이칸에는이수가들어올수없다’,‘이수는이칸에넣을수없다’같은생각을하는분이많을겁니다.이러한방식을알고리즘세계에서는‘탐색가지치기’라합니다.퍼즐을풀고프로그램을적용하다보면알고리즘적사고력도자연스럽게배양됩니다.

이책에제시한프로그램에는퍼즐을푸는데필요한최소한의기능만담았습니다.고속화,기능추가,예외처리등다양한방법으로프로그램을개선해여러분만의독자적인프로그램을만들어보기를바랍니다.

이책을추천합니다.
-재미있게알고리즘을배우고싶은사람
-경기프로그래밍에흥미가있는사람
-생각의힘을키우고싶은사람