관리 메뉴

공부가 싫은 개발자

[JAVA] Stack 본문

코딩테스트

[JAVA] Stack

우엉엉 2025. 10. 17. 14:41

✅ 기본 개념

  • 후입선출 (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