파이썬으로 배우는 자료 구조 핵심 원리 (핵심 개념과 동작 원리로 이해하는 자료 구조)

파이썬으로 배우는 자료 구조 핵심 원리 (핵심 개념과 동작 원리로 이해하는 자료 구조)

$22.00
Description
재귀 함수부터 다양한 그래프 알고리즘까지!
핵심 개념과 동작 원리로 이해하는 자료 구조 첫걸음!
유명한 자료 구조 책들이 여러 권 있지만, 방대한 양에 읽다 지치기 쉽다. 그래서 자료 구조를 좀 더 쉽게 공부하기 위해 단순히 자료 구조의 구현에 집중하기보다는 “인덱스는 어떻게 작동하기에 데이터베이스의 성능을 좋게 만들 수 있을까?”라는 한 가지 질문을 던져 놓고 이 질문의 답을 찾아가는 과정을 담았다. 모든 자료 구조를 다루진 않지만 이 과정에서 다룰 수 있는 여러 가지 자료 구조를 배우며, 개념을 확장해 나가는 방식으로 설명한다. 빅오, 재귀 함수에서부터 다양한 그래프 알고리즘까지 그림 184개로 필수 자료 구조의 핵심 개념을 익힌 후 파이썬으로 구현한 코드도 직접 확인하고 실행해 볼 수 있다. 또한, 실제 자료 구조를 어디에 어떻게 활용할 수 있는지도 엿볼 수 있다. 이 책이 자료 구조를 학습하려는 분들에게 시작점이자 다른 유명한 자료 구조 책을 볼 수 있게 해주는 징검다리 역할을 해줄 것이다.
저자

양태환

개발,육아,공부를병행하느라바쁜직장인프로그래머다.게임,네트워크,운영체제등관심분야가많아즐겁게프로그래밍하고있다.『컴퓨터사이언스부트캠프with파이썬』(길벗,2018)을집필했다.

목차

1장재귀함수
1.1재귀함수:자신을호출하는신기한함수
__1.1.1재귀함수로팩토리얼구현하기
__1.1.2스택프레임으로재귀함수이해하기
__1.1.3순열을재귀함수로구현하기:재귀트리사용하기

2장성능분석
2.1자료구조성능이야기:빅오
__2.1.1알고리즘성능분석
__2.1.2성능을비교하는방법:빅오
__2.1.3방심은금물!:빅오의함정
2.2추상데이터타입이란

3장배열:변수가한곳에모여있으면빠르다!
3.1동적배열이란
3.2지역성의원리와캐시
3.3인덱싱:데이터에빠르게접근한다!
3.4동적배열에서데이터의삽입과삭제1
3.5동적배열에서데이터의삽입과삭제2

4장연결리스트:삽입과삭제를빠르게할수없을까?
4.1연결리스트이해하기
4.2동적배열과연결리스트
4.3더미이중연결리스트

5장스택과큐,그리고덱
5.1스택:데이터를차곡차곡쌓는다
__5.1.1스택구현:동적배열을이용하여구현하기
5.2큐:데이터로줄세우기
__5.2.1큐구현1:동적배열을단순하게사용해서구현하기
__5.2.2큐구현2:원형큐로구현하기
5.3덱:스택으로도큐로도사용할수있는덱

6장그래프:관련있는데이터연결하기
6.1그래프용어정리
6.2그래프를표현하는두가지방법:도시와도시를이어보자
6.3그래프의모든노드방문:모든도시를여행해보자
__6.3.1너비우선탐색:인근도시부터여행하기
__6.3.2깊이우선탐색:한방향으로쭉따라여행하기

7장트리:정말쓸데가많은자료구조
7.1트리용어정리
7.2이진트리의순회:모든노드방문하기
__7.2.1전위순회
__7.2.2중위순회
__7.2.3후위순회
__7.2.4레벨순서순회

8장다양한트리1:이진탐색트리
8.1이진탐색알고리즘
8.2딕셔너리의내부구현
8.3이진탐색트리
8.4이진탐색트리의구현
8.5이진탐색트리의단점

9장다양한트리2:레드블랙트리
9.1어떻게균형을맞출것인가?
9.2레드블랙트리
9.3레드블랙트리의구현

10장다양한트리3:B트리
10.1메모리계층구조
10.2데이터베이스에데이터삽입,탐색,삭제해보기
10.3B트리
10.4B트리에키삽입·삭제하기
10.5B+트리
10.6B트리로인덱스만들기

11장다양한트리4:힙과우선순위큐
11.1힙
11.2우선순위큐

12장다양한그래프알고리즘1:위상정렬
12.1위상정렬

13장다양한그래프알고리즘2:최소비용신장트리
13.1탐욕알고리즘
13.2크루스칼알고리즘
__13.2.1그래프의표현
__13.2.2분리집합:사이클이형성되는지어떻게확인하지?
__13.2.3크루스칼알고리즘구현
13.3프림알고리즘
__13.3.1가중치가가장작은에지를찾는방법
__13.3.2프림알고리즘구현

14장다양한그래프알고리즘3:최단경로
14.1데이크스트라알고리즘
14.2BFS와프림알고리즘,그리고데이크스트라알고리즘

15장자료구조가적용된실제사례
15.1생산자-소비자패턴:큐
15.2자바스크립트엔진:스택과큐

출판사 서평

인덱스는어떻게작동하기에데이터베이스의성능을
좋게만들수있을까?

이질문에대한답을찾아가는과정을담았다!
유명한자료구조책들이여러권있지만방대한양에읽다지치기쉽다.그래서자료구조를좀더쉽게공부하기위해단순히자료구조의구현에집중하기보다는“인덱스는어떻게작동하기에데이터베이스의성능을좋게만들수있을까?”라는한가지질문을던져놓고이질문의답을찾아가는과정을담았다.이과정에서여러가지자료구조를배우며개념을확장해나가는방식으로설명한다.

재귀함수부터그래프알고리즘까지!
1~8장은재귀함수,성능분석,배열,연결리스트,스택,큐와같은자료구조기본내용을다루며,자료구조를제대로이해하기위해메모리,그중에서도지역성의원리,메모리계층구조에대해서도함께설명한다.책의핵심인9~10장은레드블랙트리와B트리를자세하게다룬다.마지막으로11~14장은좀더다양한트리와그래프알고리즘을설명하는데,이내용은어렵다면나중에천천히공부하면된다.10장까지이해한것만으로도이책의목적은달성한것이다.

그림184개와파이썬코드로배운다!
그림으로핵심개념을설명하고,이를파이썬코드로어떻게구현할수있는지보여준다.또한,마지막장에서는실제자료구조가활용된사례를보여주어자료구조를어디에어떻게활용할수있는지엿볼수있다.

[베타후기]
파이썬이인공지능을필두로다양한분야에서활용되기시작하면서대표적인프로그래밍언어중하나가되었습니다.하지만아직C언어나자바같은언어들로된자료구조책이대부분이며,파이썬을이용한자료구조책은많지않습니다.이책은그런면에서파이썬개발자를꿈꾸는수많은이들에게단비가될것입니다.저자는‘개발자라면누구나한번쯤궁금해할만한질문’을하나던져주고,이문제의답을찾아가는과정으로자료구조를설명합니다.책과함께문제를해결하면서원리를익히다보면자연스럽게좀더좋은소프트웨어를만드는파이썬개발자가되어있을것이라고생각됩니다.
김민규_큐셀네트웍스프로그래머

현업에서파이썬을이용하여코딩하면서자료구조의중요성을종종느꼈습니다.효과적으로코딩하려면자료구조는꼭알아야하는필수개념입니다.저는컴퓨터전공이아니기때문에자료구조의개념자체가낯설었고공부하면서도어려움을느꼈습니다.여러가지자료구조책을보았지만시중에있는다른자료구조책에는너무많은개념을이해하기어렵게설명하고있어학습하기에힘들었습니다.반면,이책은저자의의도에맞게필수적인자료구조개념들만여러가지예제와그림으로쉽게설명하고있습니다.또자료구조책들은대부분C나자바로설명이되어있는데,책에서는예제들이파이썬으로되어있어개념을이해하기가수월했습니다.저와같이자료구조에대해공부하고싶은비전공자들에게혹은코딩테스트를준비하는사람들에게자료구조입문서로추천합니다.
이혜민_LG디스플레이데이터분석가

파이썬을이용해서다양한자료구조를자세하게다루는,제목에충실하고친절한책입니다.파이썬이라는도구를사용하는것일뿐,다른언어에서도통용되는자료구조들이기에다른언어를알고있다면기본적인파이썬지식만으로도충분히학습할수있습니다.실무를하다보면좀더효율적인코드를구현하기위해고민하게되고,그런과정에서적절한자료구조의선택은무척중요합니다.이책은세상의모든자료구조를다루지는않습니다.하지만자주쓰는자료구조들을골라그자료구조의필요성과필요한메서드들에대해근거와사용예시를제시합니다.코딩테스트용책이아니어서자료구조의원리와필요성에집중하기에개인적으로는과외를받는기분으로알아가는것에즐거움을느끼며학습할수있었습니다.이책으로자료구조에익숙해진다면,자료구조때문에스트레스를받을일은현저히적어지고자신감이붙을것이라고확신합니다.
조선민_백엔드개발자

개발자가‘코더’를벗어나‘프로그래머’가되기위해넘어야할산이두개있습니다.바로‘자료구조’와‘알고리즘’이죠.하지만결코쉽지않은산이기에많은사람이좌절하곤합니다.이책에서는이산두개가결코넘지못할것이아님을잘보여줍니다.개인적으로는추상적으로이해했던자료구조와알고리즘을더구체적으로이해할수있었습니다.파이썬코드로‘자료구조’와‘알고리즘’을설명하는점도좋았습니다.이책이‘코더’에서‘프로그래머’로성장하는디딤돌이될것입니다.
김동우_프리랜서

컴퓨터공학과학생과비전공자를포함한많은사람이자료구조를배울때개념과코드만많이배웁니다.하지만왜배우는지그필요성은깊게생각하지못하는것같아안타까웠습니다.이책에서는프림알고리즘이나다익스트라알고리즘같은고급알고리즘과함께기존자료구조의방향을말해주는것뿐만아니라,데이터업계에서쓸수있을만한자료구조의방향성도함께제시해주고있습니다.기존자료구조를넘어서서자료구조가정말로왜필요하고어떤상황에서사용될수있는지실무적으로고민할수있는책입니다.
조대희_코드스테이츠데이터엔지니어