자료구조와 알고리즘 Data Structures & Algorithms Jay Wengrow모션 학습판
A Common-Sense Guide · 한국어 개념 해설

코드의 속도는 데이터를 어떻게 담느냐에서 갈린다

배열에서 그래프까지, 정렬에서 다익스트라까지. 수학을 빼고 직관으로 풀어낸 자료구조·알고리즘 입문서를 14개의 장과 움직이는 다이어그램으로 다시 짰다.

초보자 입문 Big O 정렬 알고리즘 해시 테이블 재귀 트리 & 그래프 모션 스테이지 28+

컴퓨터 프로그래밍은 결국 데이터를 다루는 일이다. 데이터를 받아들이고, 처리하고, 반환한다. 그런데 같은 데이터라도 어떻게 조직하느냐에 따라 프로그램의 속도는 몇 배, 때로는 수천 배까지 달라진다.

Jay Wengrow의 『A Common-Sense Guide to Data Structures and Algorithms』는 컴퓨터 과학 학위가 없는 실무 프로그래머를 위해 쓰였다. 수학 기호 대신 쇼핑 목록, 추측 게임, 접시 더미 같은 일상의 비유로 핵심을 설명한다. 이 사이트는 그 책의 14개 장을 한국어로 옮기고, 각 장의 자료구조와 알고리즘이 실제로 어떻게 움직이는지 단계별 SVG 애니메이션으로 보여준다.

각 장의 모션 스테이지는 재생 버튼을 누르거나, 단계 버튼으로 한 칸씩, 또는 스페이스바·화살표 키로 직접 조작할 수 있다. 알고리즘이 한 단계 한 단계 무엇을 하는지 눈으로 따라가 보라.

제1부 · 기초 — 자료구조와 알고리즘, 그리고 Big O
제 1 장

자료구조가 중요한 이유

배열과 집합. 똑같아 보이는 두 자료구조가 네 가지 연산—읽기·탐색·삽입·삭제—에서 어떻게 갈라지는지 단계 수로 분석한다.

배열집합시간 복잡도
제 2 장

알고리즘이 중요한 이유

정렬된 배열과 이진 탐색. 같은 문제를 푸는 절차가 여럿일 때, 어떤 알고리즘을 고르느냐가 속도를 결정한다.

정렬된 배열이진 탐색선형 탐색
제 3 장

Big O 표기법

O(1), O(log N), O(N). 수학을 빼고 배우는 효율성의 공통 언어. 데이터가 늘 때 단계 수가 어떻게 변하는가.

Big O로그성장률
제2부 · 정렬 — 코드를 빠르게 만드는 기술
제 4 장

빅 오를 이용한 코드 속도 향상

버블 정렬과 O(N²). 중첩 루프가 만드는 이차 시간의 함정과, 그것을 선형 시간으로 끌어내리는 최적화.

버블 정렬O(N²)최적화
제 5 장

코드 최적화하기

선택 정렬과 상수 무시 규칙. Big O가 같아도 한 알고리즘이 두 배 빠를 수 있다.

선택 정렬상수 무시
제 6 장

낙관적 시나리오를 위한 최적화

삽입 정렬과 평균 경우. 최악만 보지 말고 평균·최선의 시나리오까지 고려하라.

삽입 정렬평균 경우
제3부 · 자료구조 — 우아함과 속도
제 7 장

해시 테이블로 초고속 검색

해시 함수, 버킷, 충돌, 분리 연쇄법. O(1) 조회의 비밀과 로드 팩터의 균형 행위.

해시 테이블충돌O(1)
제 8 장

스택과 큐로 우아한 코드

LIFO와 FIFO. 제약이 만드는 우아함. 괄호 검사 린터와 인쇄 큐로 보는 임시 데이터 처리.

스택LIFO/FIFO
제 9 장

재귀로 재귀하기

함수가 자신을 부른다. 기저 사례, 호출 스택, 그리고 재귀가 빛나는 파일 시스템 순회.

재귀기저 사례호출 스택
제4부 · 고급 — 재귀 알고리즘과 노드 기반 자료구조
제 10 장

속도를 위한 재귀 알고리즘

퀵소트와 퀵셀렉트. 파티셔닝과 분할 정복으로 평균 O(N log N)에 도달하는 길.

퀵소트파티셔닝퀵셀렉트
제 11 장

노드 기반 자료구조

연결 리스트와 이중 연결 리스트. 메모리에 흩어진 노드들을 링크가 잇는다.

연결 리스트노드링크
제 12 장

이진 트리로 모든 것을 빠르게

이진 탐색 트리. 순서를 지키면서도 검색·삽입·삭제 모두 O(log N).

이진 트리BST중위 순회
제 13 장

그래프로 모든 것을 연결

정점과 간선. 너비 우선 탐색, 가중 그래프, 그리고 다익스트라의 최단 경로.

그래프BFS다익스트라
제 14 장

공간 제약 대처하기

공간 복잡도. 빅 오로 메모리를 재고, 속도와 메모리 사이의 트레이드오프를 읽는다.

공간 복잡도보조 공간트레이드오프