๐ŸŽฏ 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");
            }

        }


    }
}
๋ฐ˜์‘ํ˜•
  • ๋„ค์ด๋ฒ„ ๋ธ”๋Ÿฌ๊ทธ ๊ณต์œ ํ•˜๊ธฐ
  • ํŽ˜์ด์Šค๋ถ ๊ณต์œ ํ•˜๊ธฐ
  • ํŠธ์œ„ํ„ฐ ๊ณต์œ ํ•˜๊ธฐ
  • ๊ตฌ๊ธ€ ํ”Œ๋Ÿฌ์Šค ๊ณต์œ ํ•˜๊ธฐ
  • ์นด์นด์˜คํ†ก ๊ณต์œ ํ•˜๊ธฐ