반응형
📚 Stack (스택) - 후입선출의 대표 자료구조
"쌓아올린 접시에서 위에 있는 걸 먼저 꺼내는 구조"
개념 요약
- Stack은 LIFO(Last In, First Out) 구조.
- 가장 나중에 들어온 데이터가 가장 먼저 나감.
- 기본 연산:
- push(x): x를 스택에 넣는다
- pop(): 스택의 top을 제거하고 반환
- peek() 또는 top(): 가장 위에 있는 값을 반환
- isEmpty(): 스택이 비었는지 확인
Java 코드 예시
import java.io.*;
import java.util.*;
public class Main {
public static void main(String[] args) throws IOException {
Stack<Integer> stack = new Stack<>();
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int N = Integer.parseInt(br.readLine());
StringBuilder sb = new StringBuilder();
for(int i = 0; i < N; i++) {
String input = br.readLine();
if(input.startsWith("push")) {
int x = Integer.parseInt(input.split(" ")[1]);
stack.push(x);
} else if(input.equals("pop")) {
sb.append(stack.isEmpty() ? -1 : stack.pop()).append('\\n');
} else if(input.equals("size")) {
sb.append(stack.size()).append('\\n');
} else if(input.equals("empty")) {
sb.append(stack.isEmpty() ? 1 : 0).append('\\n');
} else if(input.equals("top")) {
sb.append(stack.isEmpty() ? -1 : stack.peek()).append('\\n');
}
}
System.out.println(sb);
}
}
상황에 맞게 먼저 넣은 것을 나중에 꺼내기 위해서 사용되는 수단!
하지만 Deque 처럼 양방향으로 빼는게 더 활용이 많다고 생각함!
그래서 그냥 stack이 이런 거구나~ 하고 이해만 하면 될 거 같음
반응형
'코테' 카테고리의 다른 글
| (코테) [Java] Heap (1) | 2025.05.15 |
|---|---|
| (코테) [Java] Deque (0) | 2025.05.15 |
| (코테) [Java] Queue (0) | 2025.05.15 |
| (코테) [Java] 형변환 (0) | 2025.05.13 |
| (코테) [Java] 배열 생성 (0) | 2025.05.13 |