나의 코드
import java.util.Scanner;
import java.util.Stack;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int numCases = sc.nextInt();
sc.nextLine();
for (int i = 0; i < numCases; i++) {
String input = sc.nextLine();
if (isVPS(input)) {
System.out.println("YES");
} else {
System.out.println("NO");
}
}
}
public static boolean isVPS(String input) {
Stack<Character> stack = new Stack<>();
for (int i = 0; i < input.length(); i++) {
char c = input.charAt(i);
if (c == '(') {
stack.push(c);
} else if (c == ')') {
if (stack.isEmpty()) {
return false;
}
stack.pop();
}
}
return stack.isEmpty();
}
}
처음에 대충 보고 맨 앞 숫자들이 그냥 예외상황인지 알았다.
(괄호가 아닌 문자가 들어갔을때 NO출력하는거라고 착각을 해서 추후 불필요한 소스코드는 다시 삭제하였다)
맨 앞 숫자의 의미는 입력할 괄호데이터의 갯수이다.