공부가 싫은 개발자
[JAVA] Stack 본문
✅ 기본 개념
- 후입선출 (LIFO) 구조
- DFS, 괄호 검사, 백트래킹, 재귀 시뮬레이션에 자주 사용
- Stack 클래스 또는 Deque로 구현 가능
1. 선언과 초기화
Stack<Integer> stack = new Stack<>();
2. 요소 추가
stack.push(10);
3. 요소 제거
stack.pop(); // 제거 + 반환
4. 요소 조회
stack.peek(); // 맨 위 요소 확인 (제거 X)
5. 전체 순회
for (int num : stack) {
System.out.println(num);
}
6. 크기 확인
stack.size();
7. 코딩테스트에서 자주 쓰이는 상황
| 상황 | 활용 예시 |
| DFS 탐색 | stack.push(node) |
| 괄호 검사 | push / pop 으로 짝 맞추기 |
| 백트래킹 | 상태 저장 후 복원 |
💡Deque로 대체하는 경우
Deque<Integer> stack = new ArrayDeque<>();
stack.push(1); // 추가
stack.pop(); // 제거
stack.peek(); // 조회'코딩테스트' 카테고리의 다른 글
| [JAVA] 문자열 처리 (0) | 2025.10.17 |
|---|---|
| [JAVA] PriorityQueue (0) | 2025.10.17 |
| [JAVA] Queue (0) | 2025.10.17 |
| [JAVA] Set (0) | 2025.10.17 |
| [JAVA] Map (0) | 2025.10.17 |