개발하자

[Algorithms] 자료구조 - 스택(Stack), 큐(Queue), 덱(Deque) 본문

Algorithms/Concepts

[Algorithms] 자료구조 - 스택(Stack), 큐(Queue), 덱(Deque)

개발리미 2025. 4. 24. 17:28
728x90

안녕하세요!

오늘은 자료구조 중 스택(Stack), 큐(Queue), 덱(Deque)에 대해 정리해보려고 합니다.

각각 어떤 특징이 있고, 어떤 상황에서 사용하면 좋을지 예제 코드와 함께 살펴보겠습니다.

 

📝 개념 설명

스택(Stack)

- 후입선출(LIFO : Last In, First Out)

예시로 웹 브라우저 뒤로가기, 재귀 호출이 있습니다

 

큐(Queue)

- 선입선출(FIFO : First In, First Out)

예시로 프린터 작업, BFS가 있습니다.

 

덱(Deque)

- 양쪽에서 삽입/삭제 가능(Double Ended Queue)

예시로 슬라이딩 윈도우 최댓값 문제, 캐시 구현이 있습니다.

 

🔍 자료구조 별 사용 예시 (Java 기준)

// 스택
Stack<Integer> stack = new Stack<>();
stack.push(1); stack.push(2);
stack.pop(); 	// 맨 위 값 제거 + 반환으로 결과는 2 
stack.peek(); 	// 맨 위 값 그대로 반환으로 결과는 1

// 큐
Queue<Integer> queue = new LinkedList<>();
queue.offer(1); queue.offer(2);
queue.poll(); // 1

// 덱
Deque<Integer> deque = new ArrayDeque<>();
deque.addFirst(1);
deque.addLast(2);
deque.removeFirst(); // 1

 

스택, 큐, 덱은 알고리즘 문제에서 굉장히 자주 등장하는 자료구조입니다.

기본 개념과 자바에서의 사용법을 잘 익혀두면 문제를 풀 때 큰 도움이 될 것 입니다.

 


공부하면서 유용했던 부분 메모겸 공유하고자 끄적입니다.

고쳐야하는 부분있다면 댓글 남겨주시면 수정하겠습니다.

행복한 하루 보내세요 (❁´◡`❁)

728x90
반응형