본문 바로가기

CodingTEST

[백준 9012] 괄호 (JAVA)

반응형

백준 9012번 문제 - 괄호

 

9012번: 괄호

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

www.acmicpc.net


문제 분석

 

 

  • 올바른 괄호 문자열(Valid PS, VPS) : 괄호의 모양( '(' 와 ')' )이 바르게 구성된 문자열을 올바른 괄호 문자열
  • 괄호가 주어졌을 때 VPS 여부를 출력해라
    • VPS 일 경우 : "YES"
    • 아닐 경우 : "NO"

해결 키 포인트
  •  
  • 문자열 검사
    • '(' 일 경우 개수를 세는 변수(openSize)를 1개 증가
    • ')' 일 경우 개수를 세는 변수(openSize)를 1개 감소
  • 문자열 검사가 끝나고 openSize가 0일 경우 "YES" 아닐 경우 "NO"

코드

 

import java.io.*;
import java.util.*;

public class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));

        int N = Integer.parseInt(br.readLine());

        for (int i = 1; i <= N; i++) {
            int openSize = 0;
            String s = br.readLine();
            for (int j = 0; j < s.length(); j++) {
                if(s.charAt(j) == '(')
                    openSize++;
                else if(s.charAt(j) == ')')
                    openSize--;

                if(openSize < 0) {
                    break;
                }
            }

            if(openSize == 0)
                bw.write("YES\n");
            else
                bw.write("NO\n");
        }

        bw.flush();
        bw.close();
    }

}

 

 

       (  )

반응형