← 질문 목록
#135깊이 0
스택과 큐는 각각 어떤 상황에서 선택해야 하는가?
자료구조 · 알고리즘기초
답변 연습
내 답변 적어보기접힘
이 브라우저에 자동 저장 · 0자
모범답안 확인하기내 답변 뒤에 열어보세요
스택은 가장 최근 데이터를 먼저 처리해야 할 때 쓰고, 큐는 들어온 순서대로 데이터를 처리해야 할 때 선택한다.
| 기준 | 스택 (Stack) | 큐 (Queue) |
|---|---|---|
| 입출력 방식 | LIFO (후입선출) | FIFO (선입선출) |
| 주요 용도 | 되돌리기, 재귀 처리 | 작업 대기열, 버퍼 |
| 알고리즘 | 깊이 우선 탐색 (DFS) | 너비 우선 탐색 (BFS) |
스택은 입력된 역순으로 돌아가는 이력 관리에 유용하며, 큐는 유입된 요청을 순서대로 소화하는 완충 지대에 알맞다.
스택은 함수 호출(Call Stack)이나 실행 취소(Undo)처럼 직전의 상태를 기억해야 하는 곳에 필수적이다. 반면 큐는 이메일 발송 대기열이나 프린터 인쇄 작업처럼 순차적인 처리가 보장되어야 하는 비동기 시스템의 기초가 된다.
구현에 쓰는 자료구조의 비용도 따져야 한다. 스택은 메모리 한계로 인한 오버플로우를 주의해야 하고, 큐는 데이터를 꺼낼 때 발생하는 배열 내 요소 이동 비용을 줄이기 위해 원형 큐나 연결 리스트 구조를 고민해야 한다.
추천 꼬리질문
관련 질문
- 스택과 큐의 가장 큰 차이는 무엇인가?자료구조 · 알고리즘스택과 큐의 기본 성질과 차이점을 바탕으로 실제 사용 상황을 결정하는 개념을 공유한다.
- 스택과 큐는 어떤 상황에서 구분해 쓰는가?자료구조 · 알고리즘두 질문 모두 스택과 큐의 사용 상황과 선택 기준이라는 동일한 개념을 다루고 있다.
- 우선순위 큐를 힙으로 구현하는 이유는 무엇인가?자료구조 · 알고리즘우선순위 큐와 일반 큐는 모두 데이터를 저장하고 관리하는 큐 계열의 자료구조로서 선택 기준을 공유한다.
- SQL과 NoSQL은 어떤 기준으로 선택하는가?데이터베이스
- 이벤트 루프는 두 태스크 큐를 어떤 기준으로 처리하는가?언어 · 런타임