코딩테스트
백준-9012 괄호
NellKiM
2025. 4. 9. 23:05
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.Stack;
public class Main_9012{
// 괄호 문자열의 유효성 검사
public static String isValid(String s) {//String s="(())())"
//s.toCharArray() ==> {"(","(",")",")","(",")")};
Stack<Character> stack = new Stack<>();
for (char c : s.toCharArray()) {
if (c == '(') { //여는 괄호는 스택에~~~
stack.push(c); // 여는 괄호면 push
} else { //닫는 괄호는 검사~~~~~
if (stack.isEmpty()) return "NO"; // 짝이 없으면 NO
stack.pop(); // 짝이 맞는 괄호 제거
}
}
return stack.isEmpty() ? "YES" : "NO"; // 스택이 비었으면 YES
}
public static void main(String[] args) throws Exception {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int testCase = Integer.parseInt(br.readLine()); // 테스트케이스 수
while (testCase-- > 0) {
System.out.println(isValid(br.readLine())); // 결과 출력
// "(())())"
}
}//main
}