Coding Test

[백준] 9012 괄호

연_우리 2022. 2. 11. 12:15
반응형

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;
import java.util.StringTokenizer;

public class Main {
    /*
    * (와 )개수가 같으면 : YES : stack이 비어있음
    * (가 )보다 많으면 : NO : stack에 남아있음
    * (가 )보다 작으면 : NO : stack에 남아있음
    *
    * ( push
    * ) pop -> 에러 발생하면 무조건 NO
    * */

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

        for (int i = 0; i < commandCount; i++) {
            Stack<Character> stack = new Stack<Character>();
            char[] chars = br.readLine().toCharArray();
            boolean check = true;

            for (char c : chars) {
                if( c == '(' ) {
                    stack.push(c);
                }else{
                    try{
                        stack.pop();
                    }catch (Exception e){
                        check = false;
                        break;
                    }
                }
                //System.out.println("c : "+c+" | "+stack);
            }

            if(stack.empty() && check){
                System.out.println("YES");
            }else{
                System.out.println("NO");
            }

        }


    }
}
반응형
  • 네이버 블러그 공유하기
  • 페이스북 공유하기
  • 트위터 공유하기
  • 구글 플러스 공유하기
  • 카카오톡 공유하기