Stk
DATA STRUCTURE
스택 (Stack)
push와 pop, 두 가지 연산만으로 마지막에 넣은 값을 가장 먼저 꺼내는 LIFO(Last In, First Out) 구조를 확인하세요. 함수 호출, 실행 취소(Undo), 괄호 검사 같은 실제 시나리오를 단계별로 재생하거나, 직접 값을 넣고 빼며 규칙을 몸으로 익힐 수 있습니다.
재생 버튼을 누르거나 다음 단계 버튼으로 스택 연산을 시작하세요.
push 0회 · pop 0회
1 / 1
속도
스택 내부 값
최상단 (TOP)
방금 push된 값
pop 실패 (언더플로우)
PSEUDOCODE
push(value): array.append(value)pop(): if array가 비어있음: return 오류 (언더플로우) value ← array.pop() return value
어떻게 동작하나요
스택은 마지막에 넣은 데이터가 가장 먼저 나오는 LIFO(Last In, First Out) 구조입니다. push는 맨 위에 값을 하나 쌓고, pop은 맨 위 값 하나만 꺼내 제거합니다. 중간에 있는 값에는 직접 접근할 수 없다는 제약이 오히려 "가장 최근 것부터 되돌린다"는 문제 — 함수 호출 스택, 실행 취소(Undo), 괄호 짝 검사 — 를 자연스럽게 표현합니다. 스택이 비어 있을 때 pop을 시도하면 꺼낼 값이 없는 "언더플로우" 상태가 됩니다.
시간·공간 복잡도
- push
- O(1)
- pop
- O(1)
- peek (최상단 조회)
- O(1)
- 임의 위치 접근
- 불가 (전부 pop 필요)
- 공간 복잡도
- O(n)
모든 연산이 맨 위 한 곳에서만 일어나기 때문에 push/pop/peek 모두 O(1) — 중간 값에 접근하려면 그 위의 값을 전부 pop해야 합니다.
다른 자료구조(큐·연결 리스트·해시 테이블·힙·이진 탐색 트리)도 이어서 시각화할 예정입니다 — Algorithm 코스로 돌아가기