도서 소개
이론은 최소한으로, 이해는 최대한으로, 자료구조를 쉽게 시작하는 가장 좋은 방법. 복잡한 수학 공식이나 추상적인 이론 없이 실생활의 유쾌한 예시와 일러스트, 핵심만 담은 코드로 자료구조의 본질을 쉽고 재미있게 풀어낸다.
배열, Big-O 표기법, 연결 리스트, 스택, 큐, 힙, 이진 탐색 트리, 그래프까지 개발자가 반드시 알아야 할 자료구조를 하나하나 체계적으로 안내한다. 언제 어떤 구조를 선택해야 할지 판단하는 감각도 자연스럽게 키워나갈 수 있다. 개발자로서의 기초 체력을 다지고 싶고, 코딩 테스트를 준비하거나 실무에서 자료구조를 더 잘 활용하고 싶다면 이 책이 좋은 출발점이 될 것이다. 지금 바로, 세상에서 가장 친절한 자료구조 수업을 시작해보자.
출판사 리뷰
그림과 이야기로 풀어낸 가장 쉬운 자료구조 수업 프로그래밍 학습에서 자료구조는 빼놓을 수 없는 핵심 주제다. 그러나 막상 공부하려고 하면 어렵고 지루하다는 선입견이 따르곤 한다. 《쏙쏙 들어오는 자료구조》는 이러한 편견을 깨뜨리고, 누구나 자료구조를 재미있게 접할 수 있도록 해주는 자료구조 입문서다.
복잡한 수학 공식이나 추상적인 설명 대신, 생활 속 사례와 흥미로운 그림으로 자료구조의 개념을 풀어낸다. 배열, Big-O 표기법, 연결 리스트, 스택, 큐, 힙, 해시 테이블, 그래프, 이진 탐색 트리까지 필수 자료구조를 하나하나 체계적으로 학습하면서, 단순히 개념을 외우는 데서 그치지 않고 ‘왜 이 구조를 쓰는가?’, ‘어떤 상황에 적합한가?’라는 근본적인 질문에 답할 수 있도록 돕는다.
특히 트로피 진열장 정리, 야구 카드 검색, 박스 재고 관리, 응급실 환자 분류 등 실생활에서 접할 수 있는 친근한 비유는 독자가 개념을 자연스럽게 떠올리게 해주며, 직관적인 일러스트와 간결한 파이썬 코드가 더해져 곧바로 이해하고 실습할 수 있도록 구성했다.
이 책은 개발 입문자에게는 든든한 첫걸음이 되고, 실무자에게는 자료구조 감각을 다시 다지는 좋은 기회가 될 것이다. 코딩 테스트를 준비하는 학습자는 물론, 현업에서 자료구조를 제대로 활용하고 싶은 개발자에게도 든든한 길잡이가 되어줄 것이다.
더 이상 자료구조는 두렵지 않다. 그림과 이야기, 그리고 직접 실행 가능한 코드와 함께하다 보면 어느새 개발자의 기본 체력이 단단해지는 경험을 할 수 있을 것이다.
주요 내용● 배열, 연결 리스트, 큐, 스택 등 핵심 구조의 원리와 구현
● 자료구조 선택 시 꼭 알아야 할 Big-O 표기법
● 우선순위 큐와 힙으로 처리하는 복잡한 데이터
● 검색이 쉬워지는 이진 탐색 트리와 균형 잡힌 트리 이해
● 실무에서 자주 쓰는 해시 테이블과 그래프의 활용
● 모든 예제를 파이썬으로 직접 구현하며 실습

이 책을 읽고 있다면, 아마도 우리가 흔히 말하는 ‘데이터 시대’에 살고 있다는 사실을 알고 있을 것이다. 이 시대에 데이터는 우리 삶에 없어서는 안 될 중요한 요소가 되었고, 기술 발전에 힘입어 정보의 생산 속도는 그 어느 때보다 기하급수적으로 증가하고 있다. 이 거대한 데이터의 흐름은 우리의 삶과 일, 서로 소통하는 방식까지 변화시키고 있다. / 이처럼 방대한 정보를 제대로 이해하고, 그에 압도당하지 않기 위해서는 정보를 효과적으로 구성하는 방법이 필요하다. 바로 여기서 자료구조가 등장한다. 자료구조는 컴퓨터나 프로그램이 정보를 저장하고 구성하는 방식으로, 데이터를 더 효율적으로 관리하고 조작할 수 있도록 도와준다.
많은 눈물과 투정 끝에 킴의 부모님은 마침내 킴의 새로운 트로피를 보관할 새로운 진열장을 제공하는 데 동의했다. 하지만 조건을 내걸었다. 기존의 진열장은 확장할 수 없고 폐기해야 하며, 새 진열장의 구입 비용과 기존 진열장의 폐기 비용을 킴의 저금통에 있는 돈으로 지불해야 한다는 것이다. 만약 그녀가 새 진열장을 살 돈이 부족하면, 그녀는 어쩔 수 없이 오래된 로봇 몇 대를 버려야 한다. / 그래서 킴은 장기적으로 최대한 돈을 아낄 수 있는 최적의 전략을 찾을 수밖에 없다(모듈형 가구를 사용하는 것은 어떨까 생각할 수도 있다. 그 말도 맞지만, 이 비유에서는 모듈형 설루션을 제공하지 않는다고 가정하자).
작가 소개
지은이 : 마르첼로 라 로카
연구 과학자이자 소프트웨어 엔지니어다. 수석 소프트웨어 엔지니어로서 트위터, 마이크로소프트, 애플 등 주요 IT 기업에서 대규모 웹 애플리케이션과 머신러닝 인프라 개발에 참여했다. 또한 학계와 산업계 양쪽에서 실용적인 연구를 진행해왔으며, 주요 관심 분야는 그래프 이론, 최적화 알고리즘, 유전 알고리즘, 머신러닝이다. 적응형 정렬 알고리즘인 Neatsort의 개발자이기도 하다.
목차
옮긴이 머리말 ix
베타리더 후기 x
추천사 xii
머리말 xiv
감사의 글 xvi
이 책에 대하여 xviii
CHAPTER 01 자료구조 소개: 왜 자료구조를 배워야 할까? 1
여러분을 환영한다 1
자료구조란 무엇인가? 3
왜 자료구조에 관심을 가져야 할까? 4
프로젝트에서 자료구조를 어떻게 사용할까? 8
요약 14
CHAPTER 02 정적 배열: 자료구조의 시작점 15
배열이란 무엇인가? 15
파이썬의 배열 21
배열에 대한 작업 23
배열의 실제 활용 28
요약 31
CHAPTER 03 정렬된 배열: 빠른 검색과 효율적 데이터 관리 33
정렬된 배열의 의미는 무엇일까? 33
정렬된 배열 구현 34
요약 41
CHAPTER 04 Big-O 표기법: 알고리즘 효율성의 기본 원리 43
어떻게 최선의 선택을 할 수 있을까? 43
Big-O 표기법 46
점근적 분석의 예 55
요약 59
CHAPTER 05 동적 배열: 크기를 유연하게 조절하는 자료구조 60
정적 배열의 한계 61
배열의 크기를 어떻게 늘릴 수 있을까? 63
트로피 진열장 63
배열의 크기도 줄여야 할까? 68
동적 배열 구현하기 71
요약 76
CHAPTER 06 연결 리스트: 유연한 동적 컬렉션 77
연결 리스트 vs. 배열 78
단일 연결 리스트 80
정렬된 연결 리스트 88
이중 연결 리스트 90
순환 연결 리스트 97
요약 100
CHAPTER 07 추상 자료형: 단순한 컨테이너의 설계 원리 102
추상 자료형 vs. 자료구조 103
컨테이너 108
가장 기본적인 컨테이너: 가방 110
요약 115
CHAPTER 08 스택: 데이터 처리를 위한 쌓기 구조 117
추상 자료형으로서의 스택 118
자료구조로서의 스택 121
연결 리스트 구현 124
이론과 현실 127
추가적인 스택의 응용 129
요약 133
CHAPTER 09 스택: 데이터 처리를 위한 쌓기 구조 117
추상 자료형으로서의 큐 134
자료구조로서의 큐 138
구현 144
동적 배열은 어떨까? 150
큐의 더 많은 응용 152
요약 153
CHAPTER 10 스택: 데이터 처리를 위한 쌓기 구조 117
우선순위를 통해 큐 확장하기 154
우선순위 큐를 자료구조로 사용하기 157
힙 160
힙 구현 163
우선순위 큐의 실제 활용 173
요약 175
CHAPTER 11 스택: 데이터 처리를 위한 쌓기 구조 117
트리란 무엇인가? 176
이진 탐색 트리 180
균형 잡힌 트리 192
요약 195
CHAPTER 12 딕셔너리와 해시 테이블: 연관 배열을 구축하고 사용하는 방법 196
딕셔너리 문제 197
딕셔너리를 구현하는 자료구조 199
해시 테이블 201
해싱 204
충돌 해결 206
요약 213
CHAPTER 13 그래프: 복잡한 관계를 효율적으로 모델링하기 214
그래프란 무엇인가? 214
그래프 구현 221
그래프 탐색 225
남은 단계 232
요약 233
찾아보기 235