Algorithm 시리즈 전체 목차 | 코딩 테스트 완벽 대비
이 글의 핵심
Algorithm 시리즈 전체 목차: 자료구조부터 알고리즘까지 17개 주제로 코딩 테스트 완벽 마스터.
시리즈 소개
알고리즘과 자료구조는 코딩 테스트와 기술 면접의 핵심입니다. 이 시리즈는 기본 자료구조부터 고급 알고리즘까지 체계적으로 학습할 수 있도록 구성했습니다.
백준, 프로그래머스, LeetCode 등 실전 문제 풀이를 중심으로, Python과 C++ 코드로 명확하게 설명합니다. O(n²)를 O(n log n)으로, O(2ⁿ)를 O(n)으로 최적화하는 방법을 배웁니다.
📚 전체 목차
🟢 자료구조 (초급~중급)
#01 배열과 리스트
20분 | 초급 | 튜토리얼
- 배열 vs 리스트, 동적 배열 (Python list, C++ vector)
- 인덱스 접근 O(1), 삽입/삭제 O(n)
- 투 포인터 기초, 부분 배열 문제
- 핵심: Array, List, Dynamic Array
#02 스택과 큐
18분 | 초급 | 튜토리얼
- 스택(LIFO), 큐(FIFO) 개념과 구현
- 괄호 검사, 되돌리기, DFS/BFS 활용
- Python list vs deque, C++ stack/queue
- 핵심: Stack, Queue, Deque
#03 해시 테이블
20분 | 중급 | 튜토리얼
- O(1) 탐색의 비밀, 해시 함수, 충돌 해결
- Python dict, C++ unordered_map
- 두 수의 합, 중복 검사, 빈도 계산
- 핵심: Hash Table, Hash Function, dict
#04 트리
22분 | 중급 | 튜토리얼
- 이진 트리, BST, 트리 순회 (전위/중위/후위)
- 재귀적 구조, 계층 표현 (파일 시스템)
- 트리 높이, 깊이, 균형
- 핵심: Binary Tree, BST, Tree Traversal
#05 그래프
32분 | 중급 | 튜토리얼
- 그래프 표현 (인접 리스트, 인접 행렬)
- 방향/무방향, 가중/비가중 그래프
- 그래프 순회 기초, 연결 요소
- 핵심: Graph, Adjacency List, Matrix
🟡 정렬 (초급~중급)
#06 기본 정렬
30분 | 초급 | 튜토리얼
- 버블, 선택, 삽입 정렬 (O(n²))
- 안정 정렬 vs 불안정 정렬
- 정렬 알고리즘 시간복잡도 비교
- 핵심: Bubble Sort, Selection Sort, Insertion Sort
#07 고급 정렬
32분 | 중급 | 튜토리얼
- 퀵, 병합, 힙 정렬 (O(n log n))
- 분할 정복, 피벗 선택, 안정성
- 계수, 기수 정렬 (O(n))
- 핵심: Quick Sort, Merge Sort, Heap Sort
#08 정렬 문제
28분 | 중급 | 튜토리얼
- K번째 수, 정렬 활용 투 포인터
- 커스텀 정렬, 람다 함수
- 실전 문제 패턴 (백준, 프로그래머스)
- 핵심: Sorting Problems, Custom Sort
🔵 탐색과 순회 (중급)
#09 이진 탐색
16분 | 중급 | 튜토리얼
- O(log n) 탐색, 정렬된 배열 필수
- Lower Bound, Upper Bound
- 파라메트릭 서치 (최적화 → 결정 문제)
- 핵심: Binary Search, Parametric Search
#10 BFS와 DFS
22분 | 중급 | 튜토리얼
- 너비 우선 탐색 (큐), 깊이 우선 탐색 (스택/재귀)
- 최단 경로 (BFS), 모든 경로 (DFS)
- 방문 체크, 레벨 순회
- 핵심: BFS, DFS, Graph Traversal
#11 백트래킹
26분 | 고급 | 튜토리얼
- 가능한 모든 경우를 탐색 (완전 탐색)
- N-Queen, 순열, 조합, 부분집합
- 가지치기로 최적화
- 핵심: Backtracking, Pruning, DFS
🔴 동적 프로그래밍 (중급~고급)
#12 DP 기초
25분 | 중급 | 튜토리얼
- 중복 계산 제거, 메모이제이션
- Top-Down (재귀+메모), Bottom-Up (반복+테이블)
- 피보나치, 계단 오르기, 최단 경로
- 핵심: DP, Memoization, Tabulation
#13 DP 패턴
22분 | 고급 | 튜토리얼
- 1차원 DP: 누적 합, 최대 부분 배열
- 2차원 DP: LCS, LIS, 배낭 문제
- 상태 전이 설계, 점화식 도출
- 핵심: DP Patterns, LCS, LIS, Knapsack
#14 DP 문제
30분 | 고급 | 튜토리얼
- 실전 DP 문제 풀이 (백준, 프로그래머스)
- 상태 정의, 초기값, 순서
- 공간 최적화 (O(n²) → O(n))
- 핵심: DP Problems, State Design
🟣 최적화 기법 (중급)
#15 그리디
48분 | 중급 | 튜토리얼
- 매 순간 최선의 선택 (탐욕 선택)
- 활동 선택, 동전 교환, 최소 신장 트리
- 그리디 vs DP, 정당성 증명
- 핵심: Greedy, 탐욕 선택, 교환 논법
#16 투 포인터
22분 | 중급 | 튜토리얼
- 두 수의 합, 부분 배열 합
- O(n²) → O(n) 최적화
- 정렬 + 투 포인터 패턴
- 핵심: Two Pointers, O(n) Optimization
#17 슬라이딩 윈도우
42분 | 중급 | 튜토리얼
- 고정/가변 윈도우, 연속 부분 배열
- 최대/최소 구간 합, 조건 만족 최소/최대 길이
- 모노토닉 덱, 상각 분석
- 핵심: Sliding Window, Monotonic Deque
🎯 학습 경로
1️⃣ 코딩 테스트 입문 (2주 코스)
#01 배열 → #02 스택/큐 → #03 해시테이블 → #06 기본정렬 → #09 이진탐색
목표: 기본 자료구조와 정렬/탐색 이해
난이도: ⭐⭐☆☆☆
예상 문제: 백준 Bronze~Silver
2️⃣ 중급 문제 해결 (4주 코스)
#04 트리 → #05 그래프 → #10 BFS/DFS → #12 DP기초 → #16 투포인터 → #17 슬라이딩윈도우
목표: 트리/그래프 순회, DP 기초
난이도: ⭐⭐⭐☆☆
예상 문제: 백준 Silver~Gold, 프로그래머스 Lv.2
3️⃣ 고급 알고리즘 (6주 코스)
#07 고급정렬 → #11 백트래킹 → #13 DP패턴 → #14 DP문제 → #15 그리디
목표: 복잡한 DP/그리디/백트래킹 마스터
난이도: ⭐⭐⭐⭐☆
예상 문제: 백준 Gold~Platinum, 프로그래머스 Lv.3
4️⃣ 코딩 테스트 집중 (3주 특훈)
#01 배열 → #03 해시테이블 → #10 BFS/DFS → #12 DP기초 → #15 그리디 → #16 투포인터
목표: 출제 빈도 높은 주제 집중
난이도: ⭐⭐⭐☆☆
적용: 카카오, 네이버, 삼성 SW 역량 테스트
💡 시리즈 특징
✅ 실전 중심
- 백준, 프로그래머스, LeetCode 문제 기반
- Python과 C++ 코드 제공
- 시간복잡도 분석과 최적화
✅ 단계별 학습
- 초급 (자료구조) → 중급 (알고리즘) → 고급 (최적화)
- 각 주제마다 기초부터 응용까지
- 코딩 테스트 난이도별 분류
✅ 패턴 중심
- 문제 유형별 해결 패턴 정리
- 투 포인터, 슬라이딩 윈도우, DP 패턴
- 실전에서 바로 적용 가능
✅ 시간복잡도 최적화
- O(n²) → O(n log n) (정렬)
- O(n²) → O(n) (투 포인터, 슬라이딩 윈도우)
- O(2ⁿ) → O(n²) (DP)
🔗 관련 시리즈
- Python 시리즈 - 파이썬 기초, 자료형, 함수
- C++ 시리즈 - C++ STL, 알고리즘 구현
- 코딩 테스트 전략 - 면접 대비
❓ 자주 묻는 질문
Q1. 어떤 순서로 공부하나요?
A: 자료구조(#01~#05) → 정렬/탐색(#06~#09) → BFS/DFS(#10~#11) → DP(#12~#14) → 최적화(#15~#17) 순서를 추천합니다.
Q2. Python vs C++ 어떤 걸로 풀죠?
A: Python이 코드가 짧고 빠르게 구현 가능합니다. 하지만 시간 제한이 빡빡한 문제는 C++이 유리합니다.
Q3. 코딩 테스트는 얼마나 준비하나요?
A: 초보자 23개월, 중급자 12개월, 경력자 2~4주 정도 집중적으로 준비하면 충분합니다.
Q4. 백준 vs 프로그래머스 뭐가 좋나요?
A: 백준은 문제가 많고 난이도 다양, 프로그래머스는 실전 기업 테스트와 유사합니다. 둘 다 풀어보세요.
Q5. DP가 너무 어려워요
A: DP는 패턴입니다. #12 기초부터 시작해서 #13 패턴을 익히고, #14 문제로 반복 연습하면 익숙해집니다.
📖 추천 문제 사이트
국내
해외
- LeetCode - FAANG 인터뷰 대비
- Codeforces - 알고리즘 경진대회
학습 자료
- 알고리즘 문제해결 전략 - 종만북
- 파이썬 알고리즘 인터뷰 - 박상길
시작하기: 배열과 리스트 (#01)에서 기초부터 시작하세요!