๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
  • ์žฅ์›์ต ๊ธฐ์ˆ ๋ธ”๋กœ๊ทธ
๐Ÿ’ป Computer Science/- Data Structure, Algorithm

[์•Œ๊ณ ๋ฆฌ์ฆ˜ PS] ๋ฐฑ์ค€ 9012๋ฒˆ ๊ด„ํ˜ธ ์ž๋ฐ” ๋ฌธ์ œ ํ’€์ด

by Wonit 2021. 2. 2.

๋ฌธ์ œ

ํ•ด๋‹น ํฌ์ŠคํŒ…์€ ๋ฐฑ์ค€์˜ 9012๋ฒˆ ๊ด„ํ˜ธ ์˜ ์ ‘๊ทผ๊ณผ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์„ ์„ค๋ช…ํ•œ ๊ธ€ ์ž…๋‹ˆ๋‹ค.
์ •๋‹ต ์†Œ์Šค ์ฝ”๋“œ๋ฅผ ํ™•์ธํ•˜์‹œ๋ ค๋ฉด solve url ์—์„œ ํ™•์ธ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ์–ด๋–ค ๋ฐฉ์‹์œผ๋กœ ์ ‘๊ทผํ•ด์•ผ ํ•˜๋Š”์ง€๋ฅผ ๋จผ์ € ์ƒ๊ฐํ•ด๋ณด์ž.

ํ•ด๊ฒฐ๋ฒ•

์ด๋ฒˆ ๋ฌธ์ œ๋Š” ์Šคํƒ์˜ ์•„์ฃผ ๋Œ€ํ‘œ์ ์ธ ๋ฌธ์ œ๋ผ๊ณ  ํ•  ์ˆ˜ ์žˆ๋Š” ๊ด„ํ˜ธ ๊ฒ€์‚ฌ ๋ฌธ์ œ์ด๋‹ค.


ํ•ด๋‹น ๋ฌธ์ œ์—์„œ๋Š” 2๊ฐ€์ง€ ๊ธฐํ˜ธ์— ๋”ฐ๋ผ์„œ ์Šคํƒ์ด ์ง„ํ–‰ํ•˜๋Š” ์—ฐ์‚ฐ์ด ๋‹ฌ๋ผ์ง„๋‹ค.

  1. ( : ์—ฌ๋Š” ๊ด„ํ˜ธ
  2. ) : ๋‹ซ๋Š” ๊ด„ํ˜ธ

์—ฌ๋Š” ๊ด„ํ˜ธ

์—ฌ๋Š” ๊ด„ํ˜ธ๋Š” ๋ฌด์กฐ๊ฑด ๋‹ซ๋Š” ๊ด„ํ˜ธ์™€ ์ง์ด๋ค๋‹ค.


๊ทธ๋Ÿผ ์—ฌ๋Š” ๊ด„ํ˜ธ๊ฐ€ ๋“ฑ์žฅํ–ˆ๋‹ค๋Š” ์†Œ๋ฆฌ๋Š” ์–ธ์  ๊ฐ„ ๋‹ซ๋Š” ๊ด„ํ˜ธ๊ฐ€ ๋“ฑ์žฅํ•  ๊ฒƒ์ด๋‹ค๋ผ๋Š” ์˜๋ฏธ๋กœ ํ•ด์„ํ•  ์ˆ˜ ์žˆ๋‹ค.


์šฐ๋ฆฌ๋Š” ์ด ์—ฌ๋Š” ๊ด„ํ˜ธ๋ฅผ ์Šคํƒ์— ๋„ฃ๊ณ  ๋‹ซ๋Š” ๊ด„ํ˜ธ๋ฅผ ๊ธฐ๋‹ค๋ฆด ๊ฒƒ์ด๋‹ค.

๋‹ซ๋Š” ๊ด„ํ˜ธ

๋‹ซ๋Š” ๊ด„ํ˜ธ๋Š” ์ ˆ๋Œ€ ์Šค์Šค๋กœ ํ˜ผ์ž ๋‹ซํž ์ˆ˜ ์—†๋‹ค.


๋‹ซ๋Š” ๊ด„ํ˜ธ๋Š” ๋ฌด์กฐ๊ฑด ์•ž์„  ์—ฌ๋Š” ๊ด„ํ˜ธ์™€ ์ง์ด ๋˜์–ด์•ผ ํ•˜๋Š”๋ฐ, ๋งŒ์•ฝ ํ•ด๋‹น ๋‹ซ๋Š” ๊ด„ํ˜ธ๊ฐ€ ์—ฌ๋Š” ๊ด„ํ˜ธ ์—†์ด, ์ฆ‰ ์Šคํƒ์— popํ•œ ๊ฐ’์ด ์—†์œผ๋ฉด ์ •ํ™•ํžˆ ๋ง ํ•ด์„œ EmptyStackException()์ด ๋ฐœ์ƒํ•˜๋ฉด ํ•ด๋‹น ๋ฌธ์žฅ์€ ์™„์ „ํ•œ ๋ฌธ์žฅ์ด ์•„๋‹ˆ๋ผ๊ณ  ํŒ๋‹จํ•ด๋„ ๋œ๋‹ค.


๊ทธ๋ž˜์„œ ์šฐ๋ฆฌ๋Š” ์ด ๋‹ซ๋Š” ๊ด„ํ˜ธ๋ฅผ ๋งŒ๋‚˜๋ฉด ์Šคํƒ์—์„œ pop ์—ฐ์‚ฐ์„ ์ˆ˜ํ–‰ํ•˜๋„๋ก ํ•  ๊ฒƒ์ด๋‹ค.

ํŒ

์—ฌ๊ธฐ์„œ ๋‹ค๋ฅธ ์‚ฌ๋žŒ๋“ค์˜ ํ’€์ด๋ฅผ ๋ณด๋ฉด boolean flag๋ฅผ ์ด์šฉํ•ด์„œ exception์ด ๋ฐœ์ƒํ•˜๋ฉด flag๋ฅผ false๋กœ ๋ณ€๊ฒฝ์‹œํ‚ค๊ณ  ๋งˆ์ง€๋ง‰์— flag๊ฐ€ false์ธ์ง€ ์•„๋‹Œ์ง€ ๊ฒ€์‚ฌํ•˜๋Š” ๋กœ์ง์ด ์กด์žฌํ•œ๋‹ค.


ํ•˜์ง€๋งŒ ์šฐ๋ฆฌ๋Š” ์ฒ˜์Œ๋ถ€ํ„ฐ ์ •๋‹ต ๋ฐฐ์—ด์— ์ •๋‹ต์ž„์„ ์ €์žฅํ•˜๊ณ , ๋งŒ์•ฝ exception์ด ํ•œ ๋ฒˆ์ด๋ผ๋„ ๋ฐœ์ƒ๋˜๋ฉด ์˜ค๋‹ต์ด๋ผ๊ณ  ์ €์žฅํ•˜๊ณ  ๋งˆ์ง€๋ง‰์— ์ •๋‹ต์„ ์ถœ๋ ฅํ•˜๋„๋ก ํ•˜์ž.


์ด๋Ÿฐ ๋ฐฉ๋ฒ•์ด ์กฐ๊ธˆ ๋”ํšจ์œจ์ ์ผ ๊ฒƒ ๊ฐ™๋‹ค.

 

์ •๋‹ต ์ฝ”๋“œ

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 t = Integer.parseInt(br.readLine());

        while(t-- > 0) {
            Stack<String> stack = new Stack<>();
            String answer = "YES";
            String[] n = br.readLine().split("");

            for (int i = 0; i < n.length; i++) {
                if(n[i].equals("(")) stack.push("(");
                else if(n[i].equals(")")) {
                    if(stack.isEmpty()) answer = "NO";
                    else stack.pop();
                }
            }
            if(!stack.isEmpty()) {
                answer = "NO";
            }
            bw.write(answer + "\n");
        }
        bw.flush();
        bw.close();
    }
}

์ •๋‹ต ์†Œ์Šค ์ฝ”๋“œ๋ฅผ ํ™•์ธํ•˜์‹œ๋ ค๋ฉด solve url ์—์„œ ํ™•์ธ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

๋Œ“๊ธ€