[BOJ] Q9012: 괄호

ddwwon·2022년 11월 3일
0

Algorithm

목록 보기
3/4
post-thumbnail

내 코드

package BOJ;

import java.util.*;


public class Q9012 {
    public static void main(String args[]) {
        Scanner sc = new Scanner(System.in);
        Stack<Character> stack = new Stack<>();
        int T = sc.nextInt();
        char ch = ' ';
        int cnt = 0;

        for(int i = 0; i < T; i++){
            String str = sc.next();
            for(int j = 0; j < str.length(); j++){
                ch = str.charAt(j);
                stack.push(ch);
                if(stack.push(ch) == '('){
                    cnt++;
                } else if(stack.push(ch) == ')'){
                    cnt--;
                }
                if(cnt < 0){
                    break;
                }
            }
            if(cnt == 0){
                System.out.println("YES");
            } else {
                System.out.println("NO");
            }
            stack.clear();
            cnt = 0;
        }
    }
}
  • stack을 사용해서 괄호를 push하고, 괄호의 형태에 따라 count를 더하거나 빼는 방식을 사용해서 괄호 검사를 진행했다.
  • 괄호를 넣는 동안 count가 음수가 되면 반복문을 break!

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

0개의 댓글