https://www.acmicpc.net/problem/9012
9012번: 괄호
괄호 문자열(Parenthesis String, PS)은 두 개의 괄호 기호인 ‘(’ 와 ‘)’ 만으로 구성되어 있는 문자열이다. 그 중에서 괄호의 모양이 바르게 구성된 문자열을 올바른 괄호 문자열(Valid PS, VPS)이라고
www.acmicpc.net
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Stack;
public class Main{
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringBuilder sb = new StringBuilder();
int T = Integer.parseInt(br.readLine());
while(T-->0){
Stack<Character> stack = new Stack<>();
String answer = "YES";
String str = br.readLine();
for(char x : str.toCharArray()){
if(x=='(') stack.push(x); // 여는 괄호를 만나면 스택에 push
else{ // 닫는 괄호일 때
if(stack.isEmpty()) answer="NO";// 스택이 비어있다면 닫는 괄호가 더 많은 것이므로 NO
else stack.pop(); // 스택에서 pop
}
}
if(!stack.isEmpty()) answer = "NO"; // 문자열 다 돌고 나서 스택이 안비어있다면 여는 괄호가 더 많은 것
sb.append(answer).append("\n");
}
System.out.println(sb);
}
}