배울 내용 바로가기
자료구조·알고리즘 배울 내용
tree와 heap처음 배우는 사람용 · 문장을 다듬는 중

트리·균형 구조·힙의 불변식과 선택

트리와 힙을 그림 암기나 library call로 배우지 않고 rooted-tree·BST·balance·heap·comparator 계약을 먼저 봉인한 뒤 traversal, search·insert·delete, rotation, heapify, priority operation, ordered/range 구조와 언어별 경계를 deterministic state trace로 검증한다.

작은 수업
72
바로 풀어볼 수 있는 문제
8 / 576
직접 움직이는 그림
1 / 72
나중에 다시 풀기
1일 · 7일 · 30일 뒤
01

모든 작은 수업이 같은 순서로 이어져요

보고, 해보고, 내 말로 설명하는 열두 단계

먼저 골라 보고, 직접 해보고, 생각과 달라진 첫 곳을 찾아요. 한 가지를 바꿔 다시 해본 뒤 새로운 생활 장면에서도 같은 생각을 쓸 수 있는지 확인해요.

VAIRODE의 열두 번 작은 배움 순서오늘 할 일을 보고, 먼저 생각하고, 그림으로 이해하고, 직접 해본 뒤, 막힌 곳을 고치고 새 문제에서 다시 확인하는 학습 흐름입니다.01오늘 할 일왜 배우는지02먼저 떠올리기이미 아는 것03그림으로 보기어떻게 움직이나04먼저 골라보기하기 전 생각05직접 해보기무엇이 보이나06막힌 곳 찾기처음 다른 곳07하나 바꿔보기한 가지08내가 만들기직접 완성09다시 확인하기새 문제로 확인10내 말로 설명한 문장 기록11생활에 써보기새로운 장면12나중에 다시1·7·30일
  1. 01오늘 할 일왜 배우는지
  2. 02먼저 떠올리기이미 아는 것
  3. 03그림으로 보기어떻게 움직이나
  4. 04먼저 골라보기하기 전 생각
  5. 05직접 해보기무엇이 보이나
  6. 06막힌 곳 찾기처음 다른 곳
  7. 07하나 바꿔보기한 가지
  8. 08내가 만들기직접 완성
  9. 09다시 확인하기새 문제로 확인
  10. 10내 말로 설명한 문장 기록
  11. 11생활에 써보기새로운 장면
  12. 12나중에 다시1·7·30일
02

72개 작은 수업으로 나눴어요

배울 내용 골라 보기

각 작은 수업에는 그림, 자주 헷갈리는 곳, 막혔을 때 볼 도움과 여덟 연습 문제가 있어요. 먼저 그림으로 이해하고, 따라 해보고, 혼자 풀고, 내가 한 일을 남기는 순서로 열립니다.

  1. 01

    학습 자료와 연습 문제 준비 중

    Tree ADT·forest와 저장 표현 분리

    8 연습 문제 틀 · 자주 헷갈리는 곳 3개 · 한눈에 보는 그림 · 먼저 알면 좋은 수업 1

  2. 02

    학습 자료와 연습 문제 준비 중

    node identity·payload·root·parent·child·edge·path 계약

    8 연습 문제 틀 · 자주 헷갈리는 곳 3개 · 한눈에 보는 그림 · 먼저 알면 좋은 수업 1

  3. 03

    학습 자료와 연습 문제 준비 중

    ordered/unordered·N-ary/binary·full/complete/perfect 형상 분류

    8 연습 문제 틀 · 자주 헷갈리는 곳 3개 · 한눈에 보는 그림 · 먼저 알면 좋은 수업 1

  4. 04

    학습 자료와 연습 문제 준비 중

    depth·height·level·subtree와 node-edge-count 불변식

    8 연습 문제 틀 · 자주 헷갈리는 곳 3개 · 한눈에 보는 그림 · 먼저 알면 좋은 수업 1

  5. 05

    학습 자료와 연습 문제 준비 중

    preorder enter-first traversal

    8 연습 문제 틀 · 자주 헷갈리는 곳 3개 · 한눈에 보는 그림 · 먼저 알면 좋은 수업 1

  6. 06

    학습 자료와 연습 문제 준비 중

    inorder의 binary-only 경계

    8 연습 문제 틀 · 자주 헷갈리는 곳 3개 · 한눈에 보는 그림 · 먼저 알면 좋은 수업 1

  7. 07

    학습 자료와 연습 문제 준비 중

    postorder exit-first traversal

    8 연습 문제 틀 · 자주 헷갈리는 곳 3개 · 한눈에 보는 그림 · 먼저 알면 좋은 수업 1

  8. 08

    학습 자료와 연습 문제 준비 중

    level-order와 FIFO frontier

    8 연습 문제 틀 · 자주 헷갈리는 곳 3개 · 한눈에 보는 그림 · 먼저 알면 좋은 수업 1

  9. 09

    학습 자료와 연습 문제 준비 중

    재귀·명시적 stack/queue traversal 선택 감사실

    8 연습 문제 틀 · 자주 헷갈리는 곳 3개 · 한눈에 보는 그림 · 먼저 알면 좋은 수업 1

  10. 10

    학습 자료와 연습 문제 준비 중

    BST 전역 순서와 duplicate·comparator 정책

    8 연습 문제 틀 · 자주 헷갈리는 곳 3개 · 한눈에 보는 그림 · 먼저 알면 좋은 수업 1

  11. 11

    학습 자료와 연습 문제 준비 중

    search와 lower/upper bound 경로

    8 연습 문제 틀 · 자주 헷갈리는 곳 3개 · 한눈에 보는 그림 · 먼저 알면 좋은 수업 1

  12. 12

    학습 자료와 연습 문제 준비 중

    insert 뒤 size·height·reachability

    8 연습 문제 틀 · 자주 헷갈리는 곳 3개 · 한눈에 보는 그림 · 먼저 알면 좋은 수업 1

  13. 13

    학습 자료와 연습 문제 준비 중

    min·max·predecessor·successor

    8 연습 문제 틀 · 자주 헷갈리는 곳 3개 · 한눈에 보는 그림 · 먼저 알면 좋은 수업 1

  14. 14

    학습 자료와 연습 문제 준비 중

    leaf 삭제

    8 연습 문제 틀 · 자주 헷갈리는 곳 3개 · 한눈에 보는 그림 · 먼저 알면 좋은 수업 1

  15. 15

    학습 자료와 연습 문제 준비 중

    한 자식 node 삭제와 child promotion

    8 연습 문제 틀 · 자주 헷갈리는 곳 3개 · 한눈에 보는 그림 · 먼저 알면 좋은 수업 1

  16. 16

    학습 자료와 연습 문제 준비 중

    두 자식 node의 successor/predecessor transplant

    8 연습 문제 틀 · 자주 헷갈리는 곳 3개 · 한눈에 보는 그림 · 먼저 알면 좋은 수업 1

  17. 17

    학습 자료와 연습 문제 준비 중

    local-child 검사로 부족한 전역 bound 검증

    8 연습 문제 틀 · 자주 헷갈리는 곳 3개 · 한눈에 보는 그림 · 먼저 알면 좋은 수업 1

  18. 18

    학습 자료와 연습 문제 준비 중

    monotone skew·높이 예산·삭제 연속성 감사실

    8 연습 문제 틀 · 자주 헷갈리는 곳 3개 · 한눈에 보는 그림 · 먼저 알면 좋은 수업 1

  19. 19

    학습 자료와 연습 문제 준비 중

    height balance·balance factor·rotation 계약

    8 연습 문제 틀 · 자주 헷갈리는 곳 3개 · 한눈에 보는 그림 · 먼저 알면 좋은 수업 1

  20. 20

    학습 자료와 연습 문제 준비 중

    LL·RR single rotation과 inorder 보존

    8 연습 문제 틀 · 자주 헷갈리는 곳 3개 · 한눈에 보는 그림 · 먼저 알면 좋은 수업 1

  21. 21

    학습 자료와 연습 문제 준비 중

    LR·RL double rotation

    8 연습 문제 틀 · 자주 헷갈리는 곳 3개 · 한눈에 보는 그림 · 먼저 알면 좋은 수업 1

  22. 22

    학습 자료와 연습 문제 준비 중

    AVL insertion repair

    8 연습 문제 틀 · 자주 헷갈리는 곳 3개 · 한눈에 보는 그림 · 먼저 알면 좋은 수업 1

  23. 23

    학습 자료와 연습 문제 준비 중

    AVL deletion repair와 ancestor 재계산

    8 연습 문제 틀 · 자주 헷갈리는 곳 3개 · 한눈에 보는 그림 · 먼저 알면 좋은 수업 1

  24. 24

    학습 자료와 연습 문제 준비 중

    subtree-size augmentation과 rank·select

    8 연습 문제 틀 · 자주 헷갈리는 곳 3개 · 한눈에 보는 그림 · 먼저 알면 좋은 수업 1

  25. 25

    학습 자료와 연습 문제 준비 중

    red-black invariant·black height·2-3-4 대응 경계

    8 연습 문제 틀 · 자주 헷갈리는 곳 3개 · 한눈에 보는 그림 · 먼저 알면 좋은 수업 1

  26. 26

    학습 자료와 연습 문제 준비 중

    B-tree·B+ tree split·promotion·leaf-link·external-memory 경계

    8 연습 문제 틀 · 자주 헷갈리는 곳 3개 · 한눈에 보는 그림 · 먼저 알면 좋은 수업 1

  27. 27

    학습 자료와 연습 문제 준비 중

    AVL·red-black·multiway 구조 claim 선택 감사실

    8 연습 문제 틀 · 자주 헷갈리는 곳 3개 · 한눈에 보는 그림 · 먼저 알면 좋은 수업 1

  28. 28

    학습 자료와 연습 문제 준비 중

    Priority Queue ADT와 heap 표현 분리

    8 연습 문제 틀 · 자주 헷갈리는 곳 3개 · 한눈에 보는 그림 · 먼저 알면 좋은 수업 1

  29. 29

    학습 자료와 연습 문제 준비 중

    complete binary shape와 parent/child array index

    8 연습 문제 틀 · 자주 헷갈리는 곳 3개 · 한눈에 보는 그림 · 먼저 알면 좋은 수업 1

  30. 30

    학습 자료와 연습 문제 준비 중

    min/max heap invariant와 sorted-array 오해

    8 연습 문제 틀 · 자주 헷갈리는 곳 3개 · 한눈에 보는 그림 · 먼저 알면 좋은 수업 1

  31. 31

    학습 자료와 연습 문제 준비 중

    insert·sift-up

    8 연습 문제 틀 · 자주 헷갈리는 곳 3개 · 한눈에 보는 그림 · 먼저 알면 좋은 수업 1

  32. 32

    학습 자료와 연습 문제 준비 중

    extract-root·last swap·sift-down

    8 연습 문제 틀 · 자주 헷갈리는 곳 3개 · 한눈에 보는 그림 · 먼저 알면 좋은 수업 1

  33. 33

    학습 자료와 연습 문제 준비 중

    bottom-up heapify와 O(n) work 증명

    8 연습 문제 틀 · 자주 헷갈리는 곳 3개 · 한눈에 보는 그림 · 먼저 알면 좋은 수업 1

  34. 34

    학습 자료와 연습 문제 준비 중

    HeapSort·동률·comparator·안정성 경계

    8 연습 문제 틀 · 자주 헷갈리는 곳 3개 · 한눈에 보는 그림 · 먼저 알면 좋은 수업 1

  35. 35

    학습 자료와 연습 문제 준비 중

    decrease/increase-key·handle index·lazy stale-entry

    8 연습 문제 틀 · 자주 헷갈리는 곳 3개 · 한눈에 보는 그림 · 먼저 알면 좋은 수업 1

  36. 36

    학습 자료와 연습 문제 준비 중

    top-k·k-way merge·scheduler heap 선택 감사실

    8 연습 문제 틀 · 자주 헷갈리는 곳 3개 · 한눈에 보는 그림 · 먼저 알면 좋은 수업 1

  37. 37

    학습 자료와 연습 문제 준비 중

    trie의 edge symbol·terminal·prefix 계약

    8 연습 문제 틀 · 자주 헷갈리는 곳 3개 · 한눈에 보는 그림 · 먼저 알면 좋은 수업 1

  38. 38

    학습 자료와 연습 문제 준비 중

    trie insert·exact search·prefix·delete pruning

    8 연습 문제 틀 · 자주 헷갈리는 곳 3개 · 한눈에 보는 그림 · 먼저 알면 좋은 수업 1

  39. 39

    학습 자료와 연습 문제 준비 중

    Fenwick tree의 lowbit responsibility range

    8 연습 문제 틀 · 자주 헷갈리는 곳 3개 · 한눈에 보는 그림 · 먼저 알면 좋은 수업 1

  40. 40

    학습 자료와 연습 문제 준비 중

    Fenwick point update·prefix sum·range query

    8 연습 문제 틀 · 자주 헷갈리는 곳 3개 · 한눈에 보는 그림 · 먼저 알면 좋은 수업 1

  41. 41

    학습 자료와 연습 문제 준비 중

    segment tree build와 associative combine·identity

    8 연습 문제 틀 · 자주 헷갈리는 곳 3개 · 한눈에 보는 그림 · 먼저 알면 좋은 수업 1

  42. 42

    학습 자료와 연습 문제 준비 중

    segment query의 disjoint interval decomposition

    8 연습 문제 틀 · 자주 헷갈리는 곳 3개 · 한눈에 보는 그림 · 먼저 알면 좋은 수업 1

  43. 43

    학습 자료와 연습 문제 준비 중

    segment point update와 ancestor recomputation

    8 연습 문제 틀 · 자주 헷갈리는 곳 3개 · 한눈에 보는 그림 · 먼저 알면 좋은 수업 1

  44. 44

    학습 자료와 연습 문제 준비 중

    range update·lazy tag·push boundary

    8 연습 문제 틀 · 자주 헷갈리는 곳 3개 · 한눈에 보는 그림 · 먼저 알면 좋은 수업 1

  45. 45

    학습 자료와 연습 문제 준비 중

    trie·Fenwick·segment 선택과 고급 제외 경계 감사실

    8 연습 문제 틀 · 자주 헷갈리는 곳 3개 · 한눈에 보는 그림 · 먼저 알면 좋은 수업 1

  46. 46

    학습 자료와 연습 문제 준비 중

    Python 3.14.6 heapq min/max 공개 계약

    8 연습 문제 틀 · 자주 헷갈리는 곳 3개 · 한눈에 보는 그림 · 먼저 알면 좋은 수업 1

  47. 47

    학습 자료와 연습 문제 준비 중

    Python stable priority·custom tree·bisect 경계

    8 연습 문제 틀 · 자주 헷갈리는 곳 3개 · 한눈에 보는 그림 · 먼저 알면 좋은 수업 1

  48. 48

    학습 자료와 연습 문제 준비 중

    C++23 priority_queue·heap algorithms

    8 연습 문제 틀 · 자주 헷갈리는 곳 3개 · 한눈에 보는 그림 · 먼저 알면 좋은 수업 1

  49. 49

    학습 자료와 연습 문제 준비 중

    C++23 ordered associative container 계약

    8 연습 문제 틀 · 자주 헷갈리는 곳 3개 · 한눈에 보는 그림 · 먼저 알면 좋은 수업 1

  50. 50

    학습 자료와 연습 문제 준비 중

    Java SE 26 PriorityQueue 계약

    8 연습 문제 틀 · 자주 헷갈리는 곳 3개 · 한눈에 보는 그림 · 먼저 알면 좋은 수업 1

  51. 51

    학습 자료와 연습 문제 준비 중

    Java SE 26 TreeMap·TreeSet 계약

    8 연습 문제 틀 · 자주 헷갈리는 곳 3개 · 한눈에 보는 그림 · 먼저 알면 좋은 수업 1

  52. 52

    학습 자료와 연습 문제 준비 중

    Rust stable BinaryHeap 계약

    8 연습 문제 틀 · 자주 헷갈리는 곳 3개 · 한눈에 보는 그림 · 먼저 알면 좋은 수업 1

  53. 53

    학습 자료와 연습 문제 준비 중

    Rust stable BTreeMap·BTreeSet 계약

    8 연습 문제 틀 · 자주 헷갈리는 곳 3개 · 한눈에 보는 그림 · 먼저 알면 좋은 수업 1

  54. 54

    학습 자료와 연습 문제 준비 중

    교차 언어 comparator·order·mutation claim ledger

    8 연습 문제 틀 · 자주 헷갈리는 곳 3개 · 한눈에 보는 그림 · 먼저 알면 좋은 수업 1

  55. 55

    학습 자료와 연습 문제 준비 중

    filesystem·DOM hierarchy 직렬화와 rollup

    8 연습 문제 틀 · 자주 헷갈리는 곳 3개 · 한눈에 보는 그림 · 먼저 알면 좋은 수업 1

  56. 56

    학습 자료와 연습 문제 준비 중

    expression·parse tree evaluation과 arity failure

    8 연습 문제 틀 · 자주 헷갈리는 곳 3개 · 한눈에 보는 그림 · 먼저 알면 좋은 수업 1

  57. 57

    학습 자료와 연습 문제 준비 중

    leaderboard range·rank·select index

    8 연습 문제 틀 · 자주 헷갈리는 곳 3개 · 한눈에 보는 그림 · 먼저 알면 좋은 수업 1

  58. 58

    학습 자료와 연습 문제 준비 중

    autocomplete trie와 Unicode·normalization 경계

    8 연습 문제 틀 · 자주 헷갈리는 곳 3개 · 한눈에 보는 그림 · 먼저 알면 좋은 수업 1

  59. 59

    학습 자료와 연습 문제 준비 중

    streaming top-k·k-way merge

    8 연습 문제 틀 · 자주 헷갈리는 곳 3개 · 한눈에 보는 그림 · 먼저 알면 좋은 수업 1

  60. 60

    학습 자료와 연습 문제 준비 중

    stable deadline scheduler와 priority update

    8 연습 문제 틀 · 자주 헷갈리는 곳 3개 · 한눈에 보는 그림 · 먼저 알면 좋은 수업 1

  61. 61

    학습 자료와 연습 문제 준비 중

    subtree DP·include/exclude·tree diameter

    8 연습 문제 틀 · 자주 헷갈리는 곳 3개 · 한눈에 보는 그림 · 먼저 알면 좋은 수업 1

  62. 62

    학습 자료와 연습 문제 준비 중

    LCA baseline과 binary lifting

    8 연습 문제 틀 · 자주 헷갈리는 곳 3개 · 한눈에 보는 그림 · 먼저 알면 좋은 수업 1

  63. 63

    학습 자료와 연습 문제 준비 중

    Euler flatten·Fenwick/segment subtree query 통합 감사실

    8 연습 문제 틀 · 자주 헷갈리는 곳 3개 · 한눈에 보는 그림 · 먼저 알면 좋은 수업 1

  64. 64

    대표 체험 수업

    64상태 tree·heap policy Gold 감사실

    8 바로 풀 문제 · 자주 헷갈리는 곳 3개 · 직접 움직여 보는 그림 · 먼저 알면 좋은 수업 1

  65. 65

    학습 자료와 연습 문제 준비 중

    AI tree·heap correctness·complexity 주장 감사

    8 연습 문제 틀 · 자주 헷갈리는 곳 3개 · 한눈에 보는 그림 · 먼저 알면 좋은 수업 1

  66. 66

    학습 자료와 연습 문제 준비 중

    독립 model·metamorphic relation·mutant 종합 감사

    8 연습 문제 틀 · 자주 헷갈리는 곳 3개 · 한눈에 보는 그림 · 먼저 알면 좋은 수업 1

  67. 67

    학습 자료와 연습 문제 준비 중

    IOI 2025 tree·heap category와 제외 경계 bridge

    8 연습 문제 틀 · 자주 헷갈리는 곳 3개 · 한눈에 보는 그림 · 먼저 알면 좋은 수업 1

  68. 68

    학습 자료와 연습 문제 준비 중

    Cambridge source와 Q-Net certification 경계 bridge

    8 연습 문제 틀 · 자주 헷갈리는 곳 3개 · 한눈에 보는 그림 · 먼저 알면 좋은 수업 1

  69. 69

    학습 자료와 연습 문제 준비 중

    KOI·ICPC 규칙과 공개 judge 무복제 전이

    8 연습 문제 틀 · 자주 헷갈리는 곳 3개 · 한눈에 보는 그림 · 먼저 알면 좋은 수업 1

  70. 70

    학습 자료와 연습 문제 준비 중

    네 언어 tree·heap 계약 전이

    8 연습 문제 틀 · 자주 헷갈리는 곳 3개 · 한눈에 보는 그림 · 먼저 알면 좋은 수업 1

  71. 71

    학습 자료와 연습 문제 준비 중

    1·7·30일 낯선 tree·heap 구조 선택 재설계

    8 연습 문제 틀 · 자주 헷갈리는 곳 3개 · 한눈에 보는 그림 · 먼저 알면 좋은 수업 1

  72. 72

    학습 자료와 연습 문제 준비 중

    증거 기반 tree·heap ADR·잔여 위험 memo

    8 연습 문제 틀 · 자주 헷갈리는 곳 3개 · 한눈에 보는 그림 · 먼저 알면 좋은 수업 1

03

마지막에 혼자 해 보는 도전

합성 scheduler·ordered index·range query·top-k workload에 맞춰 sorted list·BST·balanced tree·heap·language collection을 선택하고 64상태 policy lab, independent oracle와 official-source ledger로 release 판정을 방어한다.

실제와 닮은 상황

서비스 scheduler·compiler symbol index·ranking queue·analytics range index가 섞인 architecture review에서 broken invariant, wrong traversal, rotation subtree loss, invalid comparator, stale priority와 AI가 만든 always-logarithmic·sorted-iteration·thread-safe 단정을 독립 evidence로 감사한다.

글이나 답을 만들어 주는 도구의 도움을 받았다면

AI가 제안한 tree/heap invariant·traversal·rotation·comparator·complexity·runtime 설명을 claim 단위로 표시하고, AI 사용 전에 사람이 봉인한 expected state·operation result와 AI 없이 통과한 미공개 skew/tie/delete/heapify transfer evidence를 별도 제출한다.

마지막에 완성할 것

  • node identity·root/parent/child·ordering·duplicate·priority·mutation 의미를 고정한 versioned tree/heap contract
  • workload 4×policy 4×scale 4의 64상태 expected path·mutation·comparison·memory-shape·final-only verdict matrix
  • Python·C++·Java·Rust 공식 API의 documented·unknown·implementation·measurement 경계를 기록한 source-level ledger
  • TH64 여덟 공개 자기검토 명세, independent model·mutant report와 accept·revise·reject human decision memo

다 했는지 확인하는 기준

  • binary tree·BST·heap을 구분하고 각 ordering·shape·priority invariant를 counterexample state로 검증한다.
  • pre/in/post/BFS traversal, BST search·insert·delete와 rotation의 방문 순서·link·subtree 보존을 deterministic trace로 제출한다.
  • sift-up·sift-down·linear heapify·HeapSort와 stable tie 비보장을 operation별 comparison·state evidence로 분리한다.
  • balanced·multiway·augmented·range 구조는 직접 학습 범위와 IOI ✓q·✓p·✗ bridge를 구분하고 제외 구조를 mastery로 주장하지 않는다.
  • Python bisect를 tree로, C++ std::map을 표준 강제 Red-Black 구현으로, Java PriorityQueue iterator를 sorted로, Rust BinaryHeap push를 고정 복잡도로 표현하지 않는다.
  • Q-Net·KOI·ICPC 공식 페이지는 dated scope boundary로만 사용하고 세부 출제·합격·본선·수상·순위·성과를 주장하지 않는다.
  • 모든 lesson은 review·noindex 상태를 유지하고 공식 범위 검토·전문가 review·다세대 파일럿·접근성 검증 전에는 published로 승격하지 않는다.