์ƒ์„ธ ์ปจํ…์ธ 

๋ณธ๋ฌธ ์ œ๋ชฉ

[๋ฐฑ์ค€(BOJ)] 9012๋ฒˆ: ๊ด„ํ˜ธ (์Šคํƒ(stack), C++)

PROGRAMMING/Algorithm

by koharin 2021. 8. 7. 17:06

๋ณธ๋ฌธ

728x90
๋ฐ˜์‘ํ˜•

๐Ÿ“„ ๋ฌธ์ œํ’€์ด ๊ณผ์ •


'(' ์ธ ๊ฒฝ์šฐ: ์Šคํƒ์— ๋„ฃ๋Š”๋‹ค. (push)

')' ์ธ ๊ฒฝ์šฐ: ์Šคํƒ์—์„œ ํ•˜๋‚˜์˜ '('๋ฅผ ๊บผ๋‚ธ๋‹ค. ๋งŒ์•ฝ ๋น„์–ด์žˆ๋Š” ๊ฒฝ์šฐ, ๊ด„ํ˜ธ๊ฐ€ ๋งž์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— false๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค. ๋น„์–ด์žˆ์ง€ ์•Š๋Š” ๊ฒฝ์šฐ, ํ•˜๋‚˜์˜ VPS๊ฐ€ ๋งŒ๋“ค์–ด์ง„ ๊ฒƒ์ด๋‹ค.

ํ•œ ์ŠคํŠธ๋ง์— ๋Œ€ํ•ด ๊ฐ ๋ฌธ์ž๋งˆ๋‹ค '('์™€ ')' ์ผ€์ด์Šค์— ๋Œ€ํ•ด push ๋˜๋Š” pop์„ ๋ฐ˜๋ณตํ•œ ํ›„, ๋งŒ์•ฝ ์Šคํƒ์ด ๋น„์–ด์žˆ์œผ๋ฉด ๋ชจ๋“  ๊ฒฝ์šฐ์— ๋Œ€ํ•ด VPS๋ฅผ ๋งŒ์กฑํ•œ ๊ฒƒ์ด๋ฏ€๋กœ YES๋ฅผ ์ถœ๋ ฅํ•˜๊ณ , ์Šคํƒ์ด ๋น„์–ด์žˆ์ง€ ์•Š์€ ๊ฒฝ์šฐ์—๋Š” VPS๋ฅผ ๋งŒ์กฑํ•˜์ง€ ์•Š์€ ๊ฒƒ์ด๋ฏ€๋กœ NO๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค.

stack์˜ empty()๋กœ true ๋˜๋Š” false ๋ฐ˜ํ™˜ํ•˜์—ฌ VPS ์—ฌ๋ถ€๋ฅผ ๊ฒฐ์ •ํ•œ๋‹ค.

 

 

๐Ÿ’ป ์ฝ”๋“œ


#include <bits/stdc++.h>
using namespace std;

bool VPS(string str){
    stack<char> s;
    for(char c: str){
        switch(c){
            case '(':
            s.push(c);
            break;
            case ')':
            {
                if(!s.empty()) s.pop();
                else return false; 
            }
            break;
        }
    }
    return s.empty(); 
}

int main(){
    int T;
    scanf("%d", &T);

    for(int i=0; i<T; i++){
        string str; 
        cin >> str;
        cout << (VPS(str) ? "YES\n" : "NO\n");
    }
}

 

 

๐Ÿ–จ ์ œ์ถœ๊ฒฐ๊ณผ


728x90
๋ฐ˜์‘ํ˜•

๊ด€๋ จ๊ธ€ ๋”๋ณด๊ธฐ