기초
3단원 · Big-O · 입출력 · 자료형 복잡도
01. 시간복잡도 (Time Complexity)
Big-O 표기·실행 시간·메모리 한계
백준 대부분 문제는 시간·메모리 제한이 있어 비효율 알고리즘은 통과하지 못합니다. Big-O를 익혀 짜기 전에 통과 가능성을 예측하는 습관을 만듭니다.
02. 파이썬 입출력 최적화 (Python I/O Optimization)
sys.stdin.readline·sys.stdout.write·EOF
input()으로는 TLE가 나는 경우가 많습니다. 빠른 입출력 관용구를 익혀 코딩 테스트 기본을 다집니다.
03. 자료형 복잡도 (Data Structure Time Complexities)
list/deque/set/dict 연산 복잡도
자료형 선택만 잘해도 풀이가 통과합니다. list·deque·set·dict의 각 연산이 평균 어떤 복잡도인지 정리합니다.
기본 자료구조
5단원 · 배열·스택/큐·해시·힙·연결 리스트
04. 배열과 문자열 (Arrays & Strings)
슬라이싱·문자열 메서드·아스키 활용
투 포인터·회문 판별·애너그램 등 배열·문자열 응용 패턴의 토대를 만듭니다.
05. 스택과 큐 (Stack & Queue)
list vs deque·괄호·후위표기
LIFO와 FIFO 자료구조를 익혀 괄호 매칭·후위표기·연속 구간 문제를 해결합니다.
06. 해시 (Hash Table)
dict·set·Counter·충돌 개념
해시 자료구조로 O(1) 멤버십·빈도 카운트·중복 제거를 익힙니다.
07. 힙과 우선순위 큐 (Heap & Priority Queue)
heapq·최소/최대 힙·Top-K
우선순위 큐로 Top-K·합병·최단 경로 등 핵심 패턴을 처리합니다.
08. 연결 리스트 (Linked List)
단일·이중·원형 — 직접 구현
포인터 기반 자료구조의 동작을 직접 구현하며 노드·참조 개념을 정착시킵니다.
정렬·탐색
4단원 · 정렬 알고리즘·이진 탐색·매개변수 탐색
09강: 정렬 알고리즘
버블·삽입·병합·퀵 — 구현과 비교
기본 정렬 알고리즘을 직접 구현해 시간복잡도·안정성·인-플레이스 여부를 체감합니다.
10강: 파이썬 정렬 활용
sorted/sort·key·다중 키
파이썬 내장 정렬을 다중 키·역순·안정 정렬까지 자유롭게 활용합니다.
11강: 이진 탐색
직접 구현 + bisect
정렬된 데이터에서 O(log n) 탐색·lower/upper bound·기준 찾기 문제로 응용합니다.
12강: 매개변수 탐색
Parametric Search 패턴
"되는 최댓값/최솟값"을 결정 문제로 환원해 이진 탐색으로 푸는 강력한 기법입니다.
그래프 기초
4단원 · 그래프 표현·DFS·BFS·위상 정렬
13강: 그래프 표현
인접 리스트/행렬·방향/가중치
그래프 입력을 빠르게 인접 리스트·행렬로 변환하는 정형 패턴을 익힙니다.
14강: DFS (깊이 우선 탐색)
재귀·스택·연결 요소
깊이 우선 탐색으로 연결 요소·미로·트리 형태 문제를 해결합니다.
15강: BFS (너비 우선 탐색)
deque·최단 거리·격자 탐색
너비 우선 탐색으로 최단 거리·격자 영역·다단계 상태 공간을 풉니다.
16강: 위상 정렬
Kahn(BFS)·DFS 두 방식
선행 관계가 있는 작업의 순서를 결정하는 위상 정렬을 두 알고리즘으로 구현합니다.
트리
3단원 · 순회·BST·트라이
강의 17: 트리 순회 (Tree Traversal)
전·중·후위·레벨 순회
이진 트리의 네 가지 순회 방식을 재귀·반복으로 구현하고 입출력 변환에 활용합니다.
강의 18: 이진 탐색 트리 (Binary Search Tree)
BST 삽입/탐색/삭제·균형
이진 탐색 트리의 핵심 연산을 구현하고 균형이 깨졌을 때의 한계를 이해합니다.
강의 19: 트라이 (Trie / Prefix Tree)
문자열 검색·자동완성·접두사
여러 문자열을 빠르게 검색·접두사 처리하는 트라이 자료구조를 익힙니다.
DP·그리디
4단원 · DP 기초·심화·그리디·분할 정복
강의 20: 동적 프로그래밍 기초 (Dynamic Programming Basics)
메모이제이션·타뷸레이션·피보나치
DP의 두 가지 접근(메모이제이션/타뷸레이션)을 피보나치·계단·동전 문제로 익힙니다.
강의 21: DP 심화 (Advanced Dynamic Programming)
LCS·LIS·배낭·행렬 곱셈
대표 DP 패턴들(공통부분 수열·증가 수열·배낭·행렬 곱)을 정리합니다.
강의 22: 그리디 알고리즘 (Greedy Algorithm)
회의실·동전·활동 선택
그리디 풀이의 정당성을 직관·증명으로 확보하는 사고 패턴을 익힙니다.
강의 23: 분할 정복 (Divide and Conquer)
병합·퀵·고속 거듭제곱·CCW
큰 문제를 작은 동일 구조로 분할해 푸는 패러다임. 행렬 거듭제곱·외적도 함께 다룹니다.
고급 그래프
3단원 · 다익스트라·플로이드-워셜·MST
단원 24: 다익스트라 (Dijkstra's Algorithm)
우선순위 큐·음수 가중치 한계
단일 시작 최단 경로의 표준 알고리즘. heapq 기반 정형 구현을 익힙니다.
단원 25 — 플로이드-워셜 (Floyd-Warshall)
DP 관점·모든 쌍 최단 경로
정점 쌍 모두에 대한 최단 경로를 O(V³)으로 구하는 알고리즘. DP 점화식 관점이 핵심입니다.
단원 26 — 최소 신장 트리 (Minimum Spanning Tree)
Kruskal(유니온 파인드)·Prim
모든 정점을 잇는 최소 비용 트리. 유니온 파인드 자료구조와 함께 학습합니다.
응용 패턴
1단원 · 투 포인터·슬라이딩 윈도우·비트마스킹