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

배열·리스트의 불변식과 선택

배열과 리스트를 언어별 이름이나 Big-O 표로 암기하지 않고 순서·크기·소유·별칭·변이 계약을 먼저 봉인한 뒤 고정 연속, 가변 연속, node-linked, 비소유/backed view의 불변식·총비용·메모리·observer 유효성을 비교해 선택을 방어한다.

작은 수업
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

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

    List ADT와 저장 표현 분리

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

  2. 02

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

    순서·중복·동등성 계약

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

  3. 03

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

    고정 길이와 원소 가변성 분리

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

  4. 04

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

    값·객체·참조·동질성 계약

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

  5. 05

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

    인덱스 영역과 반열린 구간

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

  6. 06

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

    소유·별칭·복사·뷰 어휘

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

  7. 07

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

    sequence 연산 혼합 workload

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

  8. 08

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

    연속·가변·연결·뷰 표현 축

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

  9. 09

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

    의미·비용·유효성 선택 행렬

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

  10. 10

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

    고정 연속 배열 불변식

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

  11. 11

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

    offset·stride 주소 모델

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

  12. 12

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

    언어별 경계 밖 접근

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

  13. 13

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

    정확히 한 번 방문하는 순회

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

  14. 14

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

    고정 용량 논리 삽입과 오른쪽 이동

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

  15. 15

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

    논리 삭제와 왼쪽 이동

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

  16. 16

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

    부분구간 copy/view 계약

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

  17. 17

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

    다차원 index mapping과 jagged 구분

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

  18. 18

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

    고정 배열 선택·반례 실험실

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

  19. 19

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

    size와 capacity 불변식

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

  20. 20

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

    용량 안 append 상태 추적

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

  21. 21

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

    growth·reallocation·원소 이동

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

  22. 22

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

    append 상환 비용

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

  23. 23

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

    reserve와 resize 분리

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

  24. 24

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

    인덱스 삽입과 suffix 이동량

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

  25. 25

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

    erase·pop·remove 의미와 이동

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

  26. 26

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

    clear·shrink·capacity 재사용

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

  27. 27

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

    동적 배열 증명·반례 실험실

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

  28. 28

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

    node·head·tail·size·link 불변식

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

  29. 29

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

    단일 연결 reachability와 순회

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

  30. 30

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

    알려진 predecessor에서 상수 편집

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

  31. 31

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

    위치 탐색과 편집 총비용

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

  32. 32

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

    empty·singleton·head·tail 전이

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

  33. 33

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

    이중 연결 next/prev 대칭

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

  34. 34

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

    원형·sentinel 종료 불변식

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

  35. 35

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

    stable handle과 삭제 node 수명

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

  36. 36

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

    연결 대 연속 표현 근거 선택

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

  37. 37

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

    alias·shallow·deep copy

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

  38. 38

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

    slice·subrange taxonomy

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

  39. 39

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

    Python list slice와 중첩 별칭

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

  40. 40

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

    C++ span 비소유 수명

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

  41. 41

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

    Java subList·Arrays.asList backed view

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

  42. 42

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

    Rust shared·mutable slice

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

  43. 43

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

    중첩 구조 복제의 언어별 전이

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

  44. 44

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

    겹치는 이동의 방향 안전성

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

  45. 45

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

    owner-view 수명·변이 실험실

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

  46. 46

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

    index·iterator·pointer·reference·handle 분류

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

  47. 47

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

    순회 중 변이의 skip·repeat

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

  48. 48

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

    삭제 순회의 안전 패턴

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

  49. 49

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

    C++ vector 무효화 표

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

  50. 50

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

    C++ list 안정성·splice·erase

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

  51. 51

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

    Java fail-fast의 경계

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

  52. 52

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

    Rust borrow 변이와 raw pointer

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

  53. 53

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

    Python 순회 중 변이와 안정적 재작성

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

  54. 54

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

    교차 언어 무효화 감사

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

  55. 55

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

    payload·slot·node·capacity 메모리 원장

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

  56. 56

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

    Python list·array.array·deque 경계

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

  57. 57

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

    C++ array·vector·list·span 선택

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

  58. 58

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

    Java array·ArrayList·LinkedList·view 선택

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

  59. 59

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

    Rust array·Vec·slice·LinkedList 선택

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

  60. 60

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

    원소 연산 비용과 형 제약

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

  61. 61

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

    dense·jagged·nested 2D 선택

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

  62. 62

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

    workload·예산 기반 표현 선택

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

  63. 63

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

    공식 문서 주장·이식성 gate

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

  64. 64

    대표 체험 수업

    Gold 64상태 sequence 변이 관측소

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

  65. 65

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

    AI 컨테이너 선택 주장 감사

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

  66. 66

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

    독립 oracle·metamorphic 변이 테스트

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

  67. 67

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

    IOI 2025 배열·연결 구조 bridge

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

  68. 68

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

    AP CSA 2025–26 sequence bridge

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

  69. 69

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

    PCEP-30-02 Python list bridge

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

  70. 70

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

    네 언어 동일 workload 전이

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

  71. 71

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

    1·7·30일 낯선 workload 재설계

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

  72. 72

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

    증거 기반 sequence 결정 memo

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

03

마지막에 혼자 해 보는 도전

fixed indexed read, append growth, known/unknown-position middle edit, subrange handoff의 네 workload를 fixed contiguous, growable contiguous, node-linked, non-owning/backed view의 네 추상 표현과 empty/singleton, small, capacity-boundary, large의 네 scale로 조합한 64상태 sequence mutation anatomy lab을 완성한다.

실제와 닮은 상황

Python·C++·Java·Rust 후보가 섞인 architecture review에서 언어별 직접 대응이 없는 N/A, Python slice copy, Java backed view, C++ span과 Rust slice의 비소유 수명, reallocation과 erased-node observer를 구분하고 AI가 만든 always-fast·O(1)·zero-copy 주장을 독립 반례로 감사한다.

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

AI가 제안한 container·복잡도·memory estimate·invalidation 설명을 claim 단위로 표시하고, AI 사용 전에 사람이 봉인한 sequence contract·expected state·observer set과 AI 없이 통과한 미공개 transfer evidence를 별도 제출한다.

마지막에 완성할 것

  • 순서·중복·크기·소유·변이·원소 비용을 고정한 versioned sequence contract
  • 64상태의 pre/post invariant, locate·move·link·allocate count, memory ledger와 observer disposition matrix
  • 언어·라이브러리·구현·측정 claim-level과 candidate/N-A·copy·backed·borrow 차이를 기록한 source ledger
  • AL64 여덟 공개 자기검토 명세, 독립 oracle·mutant report와 accept·revise·reject human decision memo

다 했는지 확인하는 기준

  • sequence semantics를 성능보다 먼저 고정하고 이름이 같은 후보도 실제로 같은 문제를 푸는지 최소 반례로 검증한다.
  • size·capacity·logical length, owner·alias·copy·view와 fixed/growable/linked 표현을 분리하고 empty·singleton·middle·end 전이를 검사한다.
  • linked edit의 position acquisition, contiguous suffix move, reallocation, element operation과 memory overhead를 포함한 lifetime total을 비교한다.
  • index·iterator·pointer·reference·handle·view를 변이 전후 valid·invalid·conditional로 판정하고 owner lifetime을 별도 gate로 둔다.
  • 64상태 추상 lab을 언어별 타입·성능 보장으로 표현하지 않고 AL39~AL63과 공개 P01·P05·P08에서 직접 대응·N/A·view 차이를 명시한다.
  • wall-clock과 외부 accepted·rating·수료 기록을 correctness·숙련 gate로 사용하지 않고 공식 근거·독립 state model·hidden mutation fixture를 통과한다.
  • 해시 테이블, 스택·큐·덱, CS2023·IOI·AP CSA·PCEP 전체 coverage와 대회·시험·취업 결과를 주장하지 않는다.