This folder contains materials for systematically learning algorithms and data structures. You can study step-by-step from complexity analysis to advanced algorithms, which is helpful for coding interview preparation and algorithm competition training.
Target Audience : Developers with programming fundamentals, coding test preparation candidates
[Basic] [Intermediate] [Advanced]
│ │ │
▼ ▼ ▼
Complexity Analysis ───▶ Divide & Conquer ───▶ Dynamic Programming
│ │ │
▼ ▼ ▼
Arrays/Strings ─────▶ Trees/BST ───────────▶ Segment Tree
│ │ │
▼ ▼ ▼
Stacks/Queues ──────▶ Graph Basics ────────▶ Network Flow
│ │ │
▼ ▼ ▼
Hash Tables ────────▶ Shortest Path/MST ──▶ Advanced DP Optimization
Programming fundamentals (variables, control flow, functions)
Basic data structures (arrays, lists)
At least one language among C, C++, or Python
Basic Data Structures (01-05)
Search and Divide & Conquer (06-08)
Tree Data Structures (09-11)
Filename
Difficulty
Key Topics
12_Graph_Basics.md
⭐⭐
Graph representation, DFS, BFS
13_Topological_Sort.md
⭐⭐⭐
Kahn, DFS-based, cycle detection
14_Shortest_Path.md
⭐⭐⭐
Dijkstra, Bellman-Ford, Floyd-Warshall
15_Minimum_Spanning_Tree.md
⭐⭐⭐
Kruskal, Prim, Union-Find
16_LCA_and_Tree_Queries.md
⭐⭐⭐
Binary Lifting, Sparse Table
17_Strongly_Connected_Components.md
⭐⭐⭐⭐
Tarjan, Kosaraju, 2-SAT
DP and Mathematics (18-22)
Filename
Difficulty
Key Topics
18_Dynamic_Programming.md
⭐⭐⭐
Memoization, knapsack, LCS, LIS
19_Greedy_Algorithms.md
⭐⭐
Activity selection, Huffman coding, greedy vs DP
20_Bitmask_DP.md
⭐⭐⭐
Bit operations, TSP, set DP
21_Math_and_Number_Theory.md
⭐⭐⭐
Modular arithmetic, GCD/LCM, primes, combinatorics
22_String_Algorithms.md
⭐⭐⭐
KMP, Rabin-Karp, Z-algorithm
Advanced Data Structures (23-24)
Advanced Data Structures II (30-32)
Filename
Difficulty
Key Topics
29_Problem_Solving.md
⭐⭐⭐⭐
Problem type approaches, LeetCode/BOJ recommendations
Recommended Learning Sequence
Phase 1: Basic Data Structures (1 week)
Phase 2: Sorting and Searching (1 week)
Phase 4: Graph Basics (1-2 weeks)
Phase 5: Advanced Graphs (1 week)
Phase 6: DP and Mathematics (2 weeks)
Phase 7: Advanced Data Structures (1 week)
Phase 8: Advanced Graphs and Special Topics (2+ weeks)
Phase 9: Expert Data Structures (1-2 weeks)
30_Heavy_Light_Decomposition → 31_Link_Cut_Tree → 32_Persistent_Segment_Tree
29 (recommended to proceed in parallel with other phases)
# C/C++ (GCC)
gcc --version
g++ --version
# Python
python3 --version
# Online environments
# - https://www.onlinegdb.com/
# - https://replit.com/
IDE : VS Code, CLion, PyCharm
Online Judge : BOJ (Baekjoon), LeetCode, Programmers
Visualization : https://visualgo.net/
Complexity Quick Reference
Complexity
Name
Example
~10^6 operations
O(1)
Constant
Array access
Instant
O(log n)
Logarithmic
Binary search
~20 ops
O(n)
Linear
Sequential search
10^6 ops
O(n log n)
Linearithmic
Merge sort
~2×10^7 ops
O(n²)
Quadratic
Bubble sort
10^12 ops (caution)
O(2^n)
Exponential
Subsets
Infeasible
Integration with Other Folders
Folder
Related Content
C_Basics/
Dynamic arrays, linked lists, hash table implementation
CPP_Basics/
STL containers, algorithm header usage
Python/
List comprehension, itertools usage
Implement Yourself : Try implementing before using libraries
Complexity Analysis : Calculate time/space complexity for all code
Multiple Languages : Implement the same algorithm in C, C++, and Python
Problem Solving : Solve 3-5 related problems after each lesson
Error Log : Record why you got problems wrong
Coding Test Preparation Guide
Level
Goal
Required Lessons
Beginner
Solve basic problems
01~08
Intermediate
Major company coding tests
01~17
Advanced
Algorithm competitions
01~25
Expert
ICPC/IOI level
All (including 26~29)
1 second : O(n log n) or better (n ≤ 10^6)
2 seconds : O(n²) feasible (n ≤ 5000)
5 seconds : O(n²) feasible (n ≤ 10000)