본문 바로가기

연습문제/JAVA

[백준 java] 9012-괄호

 

9012번: 괄호

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

www.acmicpc.net

 

(괄호는 1

)괄호는 -1로 바꾸고

순서대로 더한다(int sum).

만약 sum이 음수가 된다면 바로 실패처리 후 NO

최종으로 더한 값이 0이 나온다면 YES를 출력한다

 

import java.util.Scanner;

public class B9012 {


    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int N = sc.nextInt();
        char[][] Board = new char[N][51];
        int[][] intArr = new int[N][51];
        for(int i=0; i<N; i++){
            String str = sc.next();
            Board[i] = str.toCharArray();
            for(int j=0; j<Board[i].length; j++){
                if(Board[i][j]=='(') intArr[i][j] =1;
                if(Board[i][j]==')') intArr[i][j] =-1;
            }
        }

        boolean[] check = new boolean[N];
        for(int i=0; i<N; i++){
            int sum=0;
            for(int j=0; j<50; j++){
                sum +=intArr[i][j];
                if(sum<0){
                    check[i] = false;
                    break;
                }
            }
            if(check[i] || sum==0){
                System.out.println("YES");
            }else{
                System.out.println("NO");
            }
        }
    }
}