개발공부/알고리즘
알고리즘 정리 - 한페이지로 보는 기본 정렬 알고리즘
2025.10.03
1. 버블 정렬 (Bubble Sort)핵심: 인접한 두 개를 비교해서 큰 걸 뒤로과정: [5, 3, 8, 4, 2]1회전:5, 3 비교 → 교환 → [3, 5, 8, 4, 2]5, 8 비교 → 유지 → [3, 5, 8, 4, 2]8, 4 비교 → 교환 → [3, 5, 4, 8, 2]8, 2 비교 → 교환 → [3, 5, 4, 2, 8] ← 8이 맨 뒤로!2회전:3, 5 비교 → 유지 → [3, 5, 4, 2, 8]5, 4 비교 → 교환 → [3, 4, 5, 2, 8]5, 2 비교 → 교환 → [3, 4, 2, 5, 8] ← 5가 제자리!3회전:3, 4 비교 → 유지 → [3, 4, 2, 5, 8]4, 2 비교 → 교환 → [3, 2, 4, 5, 8] ← 4가 제자리!4회전:3, 2 비교 → 교환 → [..
개발공부/자료구조
자료구조 정리 - 그래프(Graph)
2025.10.03
그래프 (Graph)란?핵심: 노드(정점)와 간선(엣지)의 집합 1 --- 2 | | 3 --- 4노드 (Vertex, Node): 1, 2, 3, 4간선 (Edge): 연결선 트리 vs 그래프트리:사이클 없음루트 하나부모-자식 관계N개 노드 → N-1개 간선그래프:사이클 가능루트 없음방향/무방향 가능간선 개수 제한 없음트리는 그래프의 특수한 경우! 그래프 종류1. 무방향 그래프 (Undirected Graph) 1 --- 2 | | 3 --- 4양방향 통행 가능1-2 연결 = 2-1 연결예시:친구 관계 (A와 B가 친구면 B와 A도 친구)도로 (양방향) 2. 방향 그래프 (Directed Graph, Digraph) 1 → 2 ↓..
개발공부/자료구조
자료구조 정리 - 힙(Heap)
2025.10.03
힙 (Heap)이란?핵심: 완전 이진 트리 + 부모가 자식보다 크거나 작음 힙의 종류1. 최대 힙 (Max Heap)부모 ≥ 자식루트가 최대값 100 / \ 80 60 / \ / 50 40 30 2. 최소 힙 (Min Heap)부모 ≤ 자식루트가 최소값 10 / \ 20 30 / \ / 40 50 60 BST vs 힙BST: 50 / \ 30 70 / \ / \ 20 40 60 80왼쪽 최대 힙: 80 / \ 70 60 / \ / 50 40 30부모 > 자식 (좌우 상관없음!)좌우 순서 없음차이:BST: 왼쪽/오른쪽 구분 있음힙: 좌우 ..
개발공부/자료구조
자료구조 정리 - AVL 트리와 Red-Black 트리
2025.10.03
AVL 트리란?핵심: 자동으로 균형 맞춰주는 BST 균형 (Balance)이란? 균형 잡힌 트리: 5 / \ 3 8 / \ \ 2 4 9높이 차이: 왼쪽(2) - 오른쪽(2) = 0 불균형 트리: 5 / \ 3 8 / \ 2 9 /1높이 차이: 왼쪽(3) - 오른쪽(2) = 1 (괜찮음) 심각한 불균형:1 \ 2 \ 3 \ 4높이 차이: 왼쪽(0) - 오른쪽(4) = -4 (문제!) AVL의 균형 규칙모든 노드에서:|왼쪽 높이 - 오른쪽 높이| ≤ 1이 숫자를 **Balance Factor (BF)**라고 함 BF = 왼쪽 높이 - 오른쪽 높이BF = -1, 0, 1 → OKBF =..
개발공부/자료구조
자료구조 정리 - 트리(Tree)의 개념과 이진 트리
2025.10.03
트리 (Tree)핵심 개념:계층 구조 (부모-자식 관계)하나의 루트(root)에서 시작사이클 없음 (순환 안 함) 트리의 기본 용어 1 ← 루트 (Root) / \ 2 3 ← 자식 (Children), 1의 자식 / \ \ 4 5 6 ← 리프 (Leaf, 자식 없는 노드) 트리 용어 - 완전판 깊이 (Depth)루트부터 그 노드까지의 거리노드 1의 깊이: 0노드 2의 깊이: 1노드 4의 깊이: 2 높이 (Height)그 노드부터 가장 깊은 리프까지의 거리노드 4의 높이: 0 (리프니까)노드 2의 높이: 1 (자식까지 1칸)노드 1의 높이: 2 (가장 깊은 리프까지 2칸)트리의 높이 = 루트의 높이 레벨 (Le..