728x90
반응형
스택(Stack)은 후입선출(Last In, First Out)의 원리를 따르는 자료구조로, 데이터를 저장하고 검색하는데 사용됩니다. 이 글에서는 스택의 개념과 기본적인 동작 방식을 설명하고, Python을 사용하여 스택을 구현하는 방법을 예제와 함께 살펴보겠습니다.
스택(Stack)이란 무엇인가요?
- 스택은 후입선출(Last In, First Out)의 원리를 따르는 선형 자료구조입니다. 가장 최근에 삽입된 요소가 가장 먼저 제거되는 특징을 가지고 있습니다.
스택의 기본 동작:
- Push: 스택에 요소를 추가하는 작업을 Push라고 합니다.
- Pop: 스택에서 요소를 제거하고 반환하는 작업을 Pop이라고 합니다.
- Peek: 스택의 맨 위에 있는 요소를 조회하는 작업을 Peek라고 합니다.
728x90
Java에서의 스택 구현:
- Java의 Collection 프레임워크에서는 스택을 구현하는데에 Stack 클래스를 제공합니다. Stack 클래스는 Vector를 상속받아 구현되어 있습니다.
import java.util.Stack;
public class Main {
public static void main(String[] args) {
Stack<Integer> stack = new Stack<>();
// Push 연산
stack.push(1);
stack.push(2);
stack.push(3);
// Pop 연산
int top = stack.pop();
System.out.println("Popped element: " + top); // 3
// Peek 연산
int peek = stack.peek();
System.out.println("Peeked element: " + peek); // 2
}
}
스택의 활용 예제:
- 다음은 스택을 사용하여 괄호 매칭을 확인하는 예제입니다.
import java.util.Stack;
public class ParenthesesMatching {
public static boolean isValidParentheses(String s) {
Stack<Character> stack = new Stack<>();
for (char ch : s.toCharArray()) {
if (ch == '(') {
stack.push(')');
} else if (ch == '[') {
stack.push(']');
} else if (ch == '{') {
stack.push('}');
} else if (stack.isEmpty() || stack.pop() != ch) {
return false;
}
}
return stack.isEmpty();
}
}
Java의 Collection 프레임워크를 활용하여 스택을 구현하고 활용하는 방법을 익히면 자료구조를 다루는 능력을 향상시킬 수 있습니다.
반응형
728x90
반응형
'Computing' 카테고리의 다른 글
Django로 백엔드 개발하기 (0) | 2024.03.09 |
---|---|
디자인 패턴: 팩토리 패턴 이해하기 (0) | 2024.03.09 |
웹 개발에서의 HTTP 요청과 응답 이해하기 (0) | 2024.03.09 |
MSA 환경 (0) | 2023.02.23 |
멀티 쓰레드와 싱글 쓰레드 (Multi Thread / Single Thread) (0) | 2023.02.06 |