“괄호”.
문제
괄호 문자열(PS)은 괄호 기호 ‘(‘ 및 ‘)’ 두 개로만 구성된 문자열입니다. 이 아래에서 괄호가 올바르게 구성된 문자열을 유효한 괄호 문자열(Valid PS, VPS)이라고 한다. 한 쌍의 대괄호가 있는 문자열 “( )”를 기본 VPS라고 합니다. x가 VPS이면 새 문자열 “(x)”도 VPS가 됩니다. 그리고 두 개의 VPS x와 y를 연결하여 얻은 새로운 문자열 xy는 VPS가 됩니다. 예를 들어 “(())()” 및 “((()))”는 VPS이지만 “(()(“, “(())()))” 및 “(()”는 모두 VPS입니다. 아닌 문자열
입력으로 주어진 괄호 문자열이 VPS인지 아닌지를 판단하고 그 결과를 YES 또는 NO로 표시해야 합니다.
기입
- 입력 데이터는 표준 입력을 사용합니다. 입력은 t-테스트 데이터로 이루어집니다. 입력 데이터의 수를 나타내는 정수 T가 첫 번째 입력 라인에 제공됩니다. 모든 테스트 데이터의 첫 줄은 한 줄에 있는 괄호 집합입니다. 괄호 안의 문자열 길이는 2 이상 50 이하입니다.
누르다
- 출력은 표준 출력을 사용합니다. 입력한 괄호문자열이 유효한 괄호문자열(VPS)이면 “YES”가 출력되어야 하고, 그렇지 않으면 한 줄에 순차적으로 “NO”가 출력되어야 한다.

암호
import java.util.*;
public class Main {
public static void main(String() args) {
Scanner sc = new Scanner(System.in);
int count = sc.nextInt();
Stack stack = new Stack<>();
for (int i = 0; i <count ; i++) {
String split = sc.next();
for (char item: split.toCharArray()) {
if (item =='('){
stack.push(item);
}else {
if (stack.isEmpty()){
stack.push(item);
break;
}else {
stack.pop();
}
}
}
if (stack.isEmpty()){
System.out.println("YES");
}else {
System.out.println("NO");
}
stack.clear();
}
}
}
1. Scanner를 이용하여 입력된 문자열 개수를 입력 받습니다.
2. for 문으로 입력 문자열 개수만큼 반복한다.
3. 문자열을 받고 for-each 문을 사용하여 문자열의 각 문자를 반복하면서 괄호가 여는 괄호인지 닫는 괄호인지 확인합니다.
4. 개방형 브래킷인 경우 브래킷을 스택 위로 밀어 넣습니다.
5. 닫는 괄호이고 스택이 비어 있으면 유효한 괄호 문자열이 아닙니다. 시험. 스택이 비어 있지 않으면 스택에서 마지막으로 추가된 여는 괄호를 제거합니다.
7. 문자열을 확인한 후 스택이 비어 있으면 유효한 괄호 문자열입니다. 스택이 비어 있지 않으면 이 문자열은 잘못된 괄호 문자열입니다.
8. 스택을 플러시하고 for 문으로 돌아가 다음 문자열을 테스트합니다.
