이미지 검색을 사용해 보세요
검색창 이전화면 이전화면
최근 검색어
인기 검색어

소득공제
쏙쏙 들어오는 자료구조
그림과 코드로 재미있게 배우는 파이썬 자료구조
가격
26,000
10 23,400
YES포인트?
1,300원 (5%)
5만원 이상 구매 시 2천원 추가 적립
결제혜택
카드/간편결제 혜택을 확인하세요

이미 소장하고 있다면 판매해 보세요.

  •  국내배송만 가능
  •  문화비소득공제 신청가능

카드뉴스로 보는 책

카드뉴스0
카드뉴스1
카드뉴스2
카드뉴스3
카드뉴스4
카드뉴스5

상세 이미지

책소개

목차

옮긴이 머리말 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

저자 소개2

마르첼로 라 로카

관심작가 알림신청
 
연구 과학자이자 소프트웨어 엔지니어다. 수석 소프트웨어 엔지니어로서 트위터, 마이크로소프트, 애플 등 주요 IT 기업에서 대규모 웹 애플리케이션과 머신러닝 인프라 개발에 참여했다. 또한 학계와 산업계 양쪽에서 실용적인 연구를 진행해왔으며, 주요 관심 분야는 그래프 이론, 최적화 알고리즘, 유전 알고리즘, 머신러닝이다. 적응형 정렬 알고리즘인 Neatsort의 개발자이기도 하다.
대학원에서 암호학으로 첫발을 뗀 뒤, 시스템과 프로토콜을 다루며 개발자로서의 내공을 쌓았다. 어느 날 문득 돌아보니, 프런트엔드와 백엔드는 물론 LLM까지 넘나드는 전방위 플레이어가 되어 있었다. 서버, 네트워크, 애플리케이션을 가리지 않고 코드를 짜며 살아온, 지극히 현실적인 개발자다. 코드는 평생의 업이며 취미라고 생각했지만, 최근 유일한 취미를 AI에 빼앗겼다. 그동안 몇 권의 책을 쓰고 옮겼으며, 이번에는 개발자들이 애증하는 ‘자료구조’를 ‘쏙쏙’ 들어오게 풀어보겠다는 마음으로 이 책을 번역했다. “자료구조가 이렇게 말랑말랑할 수 있다니!”라는 말을 듣는 것이 작은 소망이다.

품목정보

발행일
2025년 09월 26일
쪽수, 무게, 크기
260쪽 | 188*245*16mm
ISBN13
9791194587590

책 속으로

이 책을 읽고 있다면, 아마도 우리가 흔히 말하는 ‘데이터 시대’에 살고 있다는 사실을 알고 있을 것이다. 이 시대에 데이터는 우리 삶에 없어서는 안 될 중요한 요소가 되었고, 기술 발전에 힘입어 정보의 생산 속도는 그 어느 때보다 기하급수적으로 증가하고 있다. 이 거대한 데이터의 흐름은 우리의 삶과 일, 서로 소통하는 방식까지 변화시키고 있다. / 이처럼 방대한 정보를 제대로 이해하고, 그에 압도당하지 않기 위해서는 정보를 효과적으로 구성하는 방법이 필요하다. 바로 여기서 자료구조가 등장한다. 자료구조는 컴퓨터나 프로그램이 정보를 저장하고 구성하는 방식으로, 데이터를 더 효율적으로 관리하고 조작할 수 있도록 도와준다.
--- p.3

많은 눈물과 투정 끝에 킴의 부모님은 마침내 킴의 새로운 트로피를 보관할 새로운 진열장을 제공하는 데 동의했다. 하지만 조건을 내걸었다. 기존의 진열장은 확장할 수 없고 폐기해야 하며, 새 진열장의 구입 비용과 기존 진열장의 폐기 비용을 킴의 저금통에 있는 돈으로 지불해야 한다는 것이다. 만약 그녀가 새 진열장을 살 돈이 부족하면, 그녀는 어쩔 수 없이 오래된 로봇 몇 대를 버려야 한다. / 그래서 킴은 장기적으로 최대한 돈을 아낄 수 있는 최적의 전략을 찾을 수밖에 없다(모듈형 가구를 사용하는 것은 어떨까 생각할 수도 있다. 그 말도 맞지만, 이 비유에서는 모듈형 설루션을 제공하지 않는다고 가정하자).
--- p.64

팀은 자신의 첫 번째 비디오 게임을 개발 중이다. 그 게임을 잠시 살펴보면 주인공이 건물 안에서 왼쪽에서 오른쪽으로 움직이며 한 방에서 다른 방으로 이동하는 사이드 스크롤러 게임이다. 팀은 신중하게 방들을 설계하고, 각 방을 개별적으로 구현했다. 이제 방들 간의 진행 순서를 모델링하는 작업이 남아 있다. / ‘이걸 어떻게 하지?’ 팀은 고민했다. / 팀이 사용하는 프레임워크는 기본적으로 단일 연결 리스트를 제공하여 개발 시간을 꽤 많이 절약할 수 있다. 하지만 만약 단일 연결 리스트를 사용하면 게임 주인공은 오른쪽 방으로만 갈 수 있고, 뒤로 돌아갈 수는 없을 것이다.
--- p.92

프리양카는 얼마 전 외부에서 보기엔 정말 멋있기 그지없는 스타트업에 입사했다. 그들의 사명은 그녀와 잘 맞았고, 창업자들이 개발한 AI 기술도 매력적이었다. 하지만 그녀는 핵심 기술 외에 회사의 인프라와 조직이 엉망이라는 사실을 꿈에도 몰랐다. 심지어 적절한 작업 관리 도구조차 없고, 버그 백로그는 그녀의 책상, 모니터, 그리고 작은 주방 테이블에 붙은 스티커 메모였다. / 그 말인즉 백로그를 ‘스크롤’한다는 것은 이러한 스티커 메모를 수집하고, 사무실 곳곳을 찾아다니며 필체를 해석하거나 누가 작성했는지 알아내는 것을 의미했다. 이런 상황에서는 버그를 고치는 것보다 버그를 놓치고 잊어버리는 것이 더 쉽다. 일주일 동안 버그 수정을 놓치고 적색 경고를 받은 프리양카는 더 이상 참을 수 없었다.
--- p.137

마리오는 기억력이 좋지만, 이제 수백 장의 카드를 모았기 때문에 이미 소유하고 있는 카드와 없는 카드를 모두 기억하기가 어렵다. 특히 친구들과 카드를 교환할 때는 다른 사람이 카드를 가져가기 전에 재빨리 카드를 선택해야 하므로 더욱 그렇다. 경쟁에서 앞서기 위해 마리오는 카메라로 카드를 스캔하고 그 카드가 이미 자신의 컬렉션에 있는지, 몇 장을 가지고 있는지 몇 초 만에 확인할 수 있는 모바일 앱을 활용할 계획이다. / 이 앱의 핵심 기능--- p.UX와 객체 인식 외)은 바로 딕셔너리다. 딕셔너리는 특정 키로 데이터를 저장하고, 키를 기준으로 데이터를 검색한다. 야구 카드의 경우, 키로 선수 이름이나 심지어 카드의 사진을 사용할 수 있다. 이 예시에서 키는 소유한 카드의 복사본 수나 카드의 세부 사항(팀 정보, 통계 등)과 같은 속성과 연관될 수 있다.
--- p.197

선거운동 매니저가 수집한 정보에 따르면 토끼는 소셜 네트워크의 스타이며, 토끼의 지지를 얻으면 선거 판도를 바꿀 수 있다. 호랑이 본부에서는 토끼가 친구 사슬에서 얼마나 떨어져 있는지 이해하고 싶어한다. 또한 호랑이와 토끼 사이의 최단 경로는 무엇인지 알고 싶어 한다. 계획은 호랑이의 친구 중 1명으로 시작해, 그 친구가 호랑이를 자신의 친구 중 1명에게 소개하고, 그 친구가 다시 호랑이를 자신의 친구에게 소개하는 식으로 진행해나가는 것이다. 이 과정을 토끼에게 도달할 때까지 반복하며, 경로가 짧을수록 관여하는 인원이 적어진다. / 너비 우선 탐색(.breadth-first search, BFS) 알고리즘은 정확히 이 작업을 수행한다.

--- p.226

출판사 리뷰

그림과 이야기로 풀어낸 가장 쉬운 자료구조 수업

프로그래밍 학습에서 자료구조는 빼놓을 수 없는 핵심 주제다. 그러나 막상 공부하려고 하면 어렵고 지루하다는 선입견이 따르곤 한다. 《쏙쏙 들어오는 자료구조》는 이러한 편견을 깨뜨리고, 누구나 자료구조를 재미있게 접할 수 있도록 해주는 자료구조 입문서다.

복잡한 수학 공식이나 추상적인 설명 대신, 생활 속 사례와 흥미로운 그림으로 자료구조의 개념을 풀어낸다. 배열, Big-O 표기법, 연결 리스트, 스택, 큐, 힙, 해시 테이블, 그래프, 이진 탐색 트리까지 필수 자료구조를 하나하나 체계적으로 학습하면서, 단순히 개념을 외우는 데서 그치지 않고 ‘왜 이 구조를 쓰는가?’, ‘어떤 상황에 적합한가?’라는 근본적인 질문에 답할 수 있도록 돕는다.

특히 트로피 진열장 정리, 야구 카드 검색, 박스 재고 관리, 응급실 환자 분류 등 실생활에서 접할 수 있는 친근한 비유는 독자가 개념을 자연스럽게 떠올리게 해주며, 직관적인 일러스트와 간결한 파이썬 코드가 더해져 곧바로 이해하고 실습할 수 있도록 구성했다.

이 책은 개발 입문자에게는 든든한 첫걸음이 되고, 실무자에게는 자료구조 감각을 다시 다지는 좋은 기회가 될 것이다. 코딩 테스트를 준비하는 학습자는 물론, 현업에서 자료구조를 제대로 활용하고 싶은 개발자에게도 든든한 길잡이가 되어줄 것이다.

더 이상 자료구조는 두렵지 않다. 그림과 이야기, 그리고 직접 실행 가능한 코드와 함께하다 보면 어느새 개발자의 기본 체력이 단단해지는 경험을 할 수 있을 것이다.

주요 내용

● 배열, 연결 리스트, 큐, 스택 등 핵심 구조의 원리와 구현
● 자료구조 선택 시 꼭 알아야 할 Big-O 표기법
● 우선순위 큐와 힙으로 처리하는 복잡한 데이터
● 검색이 쉬워지는 이진 탐색 트리와 균형 잡힌 트리 이해
● 실무에서 자주 쓰는 해시 테이블과 그래프의 활용
● 모든 예제를 파이썬으로 직접 구현하며 실습

리뷰/한줄평1

리뷰

첫번째 리뷰어가 되어주세요.

한줄평

10.0 한줄평 총점

클린봇이 부적절한 글을 감지 중입니다.

설정
23,400
1 23,400