카테고리 없음

[JAVA] 백준 9012 괄호

연듀 2022. 10. 4. 10:41

https://www.acmicpc.net/problem/9012

 

9012번: 괄호

괄호 문자열(Parenthesis String, PS)은 두 개의 괄호 기호인 ‘(’ 와 ‘)’ 만으로 구성되어 있는 문자열이다. 그 중에서 괄호의 모양이 바르게 구성된 문자열을 올바른 괄호 문자열(Valid PS, VPS)이라고

www.acmicpc.net

 

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Stack;

public class Main{
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        StringBuilder sb = new StringBuilder();
        int T = Integer.parseInt(br.readLine());

        while(T-->0){
            Stack<Character> stack = new Stack<>();
            String answer = "YES";
            String str = br.readLine();
            for(char x : str.toCharArray()){
                if(x=='(') stack.push(x); // 여는 괄호를 만나면 스택에 push
                else{ // 닫는 괄호일 때
                    if(stack.isEmpty()) answer="NO";// 스택이 비어있다면 닫는 괄호가 더 많은 것이므로 NO
                    else stack.pop(); // 스택에서 pop
                }
            }
            if(!stack.isEmpty()) answer = "NO"; // 문자열 다 돌고 나서 스택이 안비어있다면 여는 괄호가 더 많은 것

            sb.append(answer).append("\n");
        }
        System.out.println(sb);
    }
}