CS 기초 · 기초
스택(Stack)과 큐(Queue) 자료구조의 정의와 각각 LIFO(Last-In, First-Out) 및 FIFO(First-In, First-Out) 원리를 설명하고, 실제 프로그래밍에서 사용되는 예를 들어주세요.
힌트 · 스택은 후입선출, 큐는 선입선출 원리를 따릅니다. 스택은 함수 호출 스택, 큐는 작업 대기열 등에 활용됩니다.
스택큐LIFOFIFO함수 호출 스택
모범답안
스택과 큐는 데이터를 저장하고 관리하는 기본적인 자료구조입니다.
스택은 LIFO, 즉 Last-In, First-Out 원리를 따릅니다. 가장 마지막에 들어간 데이터가 가장 먼저 나오는 구조입니다. 마치 접시를 쌓아 올리는 것과 같습니다. 프로그래밍에서는 함수 호출 시 함수의 실행 정보를 저장하는 함수 호출 스택, 웹 브라우저의 뒤로 가기/앞으로 가기 기능 등에 활용됩니다.
큐는 FIFO, 즉 First-In, First-Out 원리를 따릅니다. 가장 먼저 들어간 데이터가 가장 먼저 나오는 구조입니다. 마치 줄을 서서 기다리는 것과 같습니다. 프린터의 인쇄 대기열, 운영체제의 작업 스케줄링, 메시지 큐 등에 사용됩니다.
읽었다면, 이제 직접 답해볼 차례예요
패스잇 앱에서 이 질문에 말로 답하면 AI가 꼬리질문까지 이어가며 1:1 코칭합니다.
함께 보는 알고리즘 면접 질문
- 알고리즘의 시간 복잡도(Time Complexity)와 공간 복잡도(Space Complexity)는 무엇이며, 왜 중요하게 고려해야 하는지 설명해주세요. 특히 Big O 표기법은 무엇을 의미하나요?
- 배열(Array)과 연결 리스트(Linked List)의 주요 차이점은 무엇이며, 각각 어떤 상황에서 더 효율적인 자료구조인지 구체적인 예를 들어 설명해주세요.
- 이진 탐색(Binary Search) 알고리즘은 어떻게 동작하며, 이 알고리즘을 사용하기 위한 데이터의 전제 조건은 무엇인가요? 시간 복잡도는 어떻게 되나요?
- 버블 정렬(Bubble Sort) 알고리즘의 동작 원리를 설명하고, 이 알고리즘의 시간 복잡도와 실제 시스템 개발에서 잘 사용되지 않는 이유를 함께 설명해주세요.
- 재귀 함수(Recursive Function)는 무엇이며, 재귀 함수를 작성할 때 반드시 고려해야 할 두 가지 중요한 요소는 무엇인가요?