<괄호 검사>
1. 왼쪽 괄호의 개수와 오른쪽 괄호의 개수가 같아야 한다.
2. 같은 괄호에서 왼쪽 괄호는 오른쪽 괄호보다 먼저 나와야 한다.
3. 괄호 사이에는 포함 관계만 존재한다. ( [()] : O 또는 ([]) : O 또는 ([)] : X )
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Stack;
public class baek9012 {
public static void main(String[] args) throws NumberFormatException, IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int T = Integer.parseInt(br.readLine());
Stack<Character> stack = new Stack<>();
for(int t=0; t<T; t++) {
String str = br.readLine();
for(int i=0; i<str.length(); i++) {
char c = str.charAt(i);
if(c == '(') {
stack.push(c);
} else {
if(!(stack.isEmpty())) {
stack.pop();
} else {
stack.push(c);
break;
}
}
}
if(stack.isEmpty()) {
System.out.println("YES");
} else {
System.out.println("NO");
}
stack.clear();
}
} //main
}
반복문이므로 이전에 작업하고 stack에 남아있는 데이터들을 다 지워줘야한다.