import java.util.*;

public class Main {
	
	static Stack<Character> stk = new Stack<Character>();
	
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);		
		int T = sc.nextInt();	
		
		for (int i = 0; i < T; i++) {
			String str = sc.next();
			if(VPC(str)) {
				System.out.println("YES");
			}else {
				System.out.println("NO");
			}
			stk.clear();	// 다음 VPC검사를 위해 clear
		}
	}
	
	public static boolean VPC(String str) {
		char[] arr = str.toCharArray();
		
		for (int i = 0; i < arr.length; i++) {
			if(arr[i] == '(') {
				stk.push(arr[i]);
			}
			else if (arr[i] == ')') {
				if(stk.empty()) {	// 비어있으면
					return false;
				}else {	// 비어있지 않으면
					char tmp = stk.peek();
					if(tmp == ')') {
						return false;
					}else {
						stk.pop();						
					}
				}
			}
		}
		
		if(stk.empty()) {
			return true;
		}else {
			return false;
		}
	}
}

'JAVA > 백준' 카테고리의 다른 글

[스택] 백준 10828  (0) 2021.08.03
[문자열 처리] 백준 11656  (0) 2021.07.31
[문자열 처리] 백준 10824  (0) 2021.07.31
[문자열 처리] 백준 11655  (0) 2021.07.30
[문자열 처리] 백준 10820  (0) 2021.07.30