import java.util.Scanner;
import java.util.Stack;
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int T = in.nextInt();
for(int i = 0; i < T; i++) {
System.out.println(solve(in.next()));
}
}
public static String solve(String s) {
Stack<Character> stack = new Stack<>();
for (int i = 0; i < s.length(); i++) {
char c = s.charAt(i);
if (c == '(') {
stack.push(c);
}
else if (stack.empty()) {
return "NO";
}
else {
stack.pop();
}
}
if (stack.empty()) {
return "YES";
}
else {
return "NO";
}
}
}
사실 그냥 int값으로 해결하려했다. ( 일때 +, ) 일때 - 해서 각 문자열을 다 돌고 끝났을 때 음수거나 0이 아니면 NO를 출력하려고 했다. 이게 당연히 맞는 줄 알았다 Stack을 생각못했기 때문에 그러다 스택이 떠올라 스택으로 푸니 바로 .. 컷!
아래 사진은 이상한 곳에서 발악한 나를 볼 수 있는 사진..
[링크] : 개인저장소