티스토리 뷰

반응형

www.acmicpc.net/problem/9012

 

9012번: 괄호

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

www.acmicpc.net

 


 문제

 입력

 출력

 예제 입출력

 알고리즘 분류

  • 자료구조
  • 문자열
  • 스택

 


 

 문제 접근 과정

 

 

스택 문제다. 하지만 반복문으로 문제를 풀어봤다.

for문을 통해 값을 반복시키고 count를 활용하여 접근했다.

 

 


 

 문제 풀이

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);

        //값을 입력받는다.
        int T = in.nextInt();
        String[] VPS = new String[T];

        // T값만큼 괄호를 받는다.
        for(int i=0;i<T;i++) {
            VPS[i] = in.next();
        }

        for(int i=0;i<T;i++) {
            // '('를 세는 카운터, 한바퀴마다 초기화한다.
            int count=0;

            //길이만큼 반복한다.
            for(int j=0;j<VPS[i].length();j++) {
                if(VPS[i].charAt(j) == '(') {
                    count++;
                } else if (VPS[i].charAt(j) == ')') {
                    count--;
                    //중요! ')'가 먼저 입력되면 NO를 출력하도록
                    //높은 수를 더해준다.
                    if(count<0) {
                        count=count+10000;
                    }
                }
            }

            //YES or NO 출력문
            if(count==0) {
                System.out.println("YES");
            } else {
                System.out.println("NO");
            }
        }
    }
}

 

 

 


 결과

 


 마무리

 

 

스택을 활용하면 코드는 더 짧아진다. 반복문으로 문제를 푼 탓에 코드 길이가 길다.

728x90
반응형
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/04   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
글 보관함