스택은 컴퓨터 과학에서 사용되는 중요한 자료구조 중 하나입니다. 스택은 데이터를 저장하고 검색하는 데 사용되며, 주로 "Last In, First Out" (LIFO) 원칙을 따릅니다. 이것은 가장 최근에 추가된 항목이 가장 먼저 제거되는 원리를 의미합니다.
스택은 다음과 같은 구성 요소로 이루어져 있습니다.
스택은 다음과 같은 기본 동작을 갖습니다.
스택과 리스트의 주요 차이점은 다음과 같습니다.
import java.util.Stack;
public class BracketMatcher {
public static void main(String[] args) { // Q1
String input = "(()())";
if (isValid(input)) {
System.out.println("올바른 괄호");
} else {
System.out.println("올바르지 않은 괄호");
}
}
public static boolean isValid(String s) {
Stack<_________> stack = new Stack<>(); // Q2
for (char c : s.toCharArray()) {
if (c == '(') {
stack.______(c); // Q3
} else if (c == ')') {
if (stack.isEmpty() || stack.pop() != '(') { // Q4
return false;
}
}
}
return stack.isEmpty();
}
}
isEmpty()
메소드와 pop()
메소드의 역할은 무엇일까요?