๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
Algorithm ๐Ÿง‘๐Ÿป‍๐Ÿ’ป/ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค(Programmers)

[c++] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค - ์˜ฌ๋ฐ”๋ฅธ ๊ด„ํ˜ธ(Level 2)

by dkswnkk 2022. 4. 18.

๋ฌธ์ œ

 

์ฝ”๋”ฉํ…Œ์ŠคํŠธ ์—ฐ์Šต - ์˜ฌ๋ฐ”๋ฅธ ๊ด„ํ˜ธ

๊ด„ํ˜ธ๊ฐ€ ๋ฐ”๋ฅด๊ฒŒ ์ง์ง€์–ด์กŒ๋‹ค๋Š” ๊ฒƒ์€ '(' ๋ฌธ์ž๋กœ ์—ด๋ ธ์œผ๋ฉด ๋ฐ˜๋“œ์‹œ ์ง์ง€์–ด์„œ ')' ๋ฌธ์ž๋กœ ๋‹ซํ˜€์•ผ ํ•œ๋‹ค๋Š” ๋œป์ž…๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด "()()" ๋˜๋Š” "(())()" ๋Š” ์˜ฌ๋ฐ”๋ฅธ ๊ด„ํ˜ธ์ž…๋‹ˆ๋‹ค. ")()(" ๋˜๋Š” "(()(" ๋Š” ์˜ฌ๋ฐ”๋ฅด์ง€ ์•Š์€

programmers.co.kr

 

์ฝ”๋“œ

#include <string>
#include <stack>

using namespace std;

bool solution(string s){
    stack<char>st;
    for(char c:s){
        if(c==')'){
            if(st.empty()) return false;
            else st.pop();
        }
        else st.push(c);
    }
    if(st.empty()) return true;
    return false;
}

 

ํ’€์ด(4๋ถ„)

๊ฐ„๋‹จํ•œ ๋ฌธ์ œ์ž…๋‹ˆ๋‹ค. '(' ์ผ๋•Œ๋Š” ์Šคํƒ์— ๋„ฃ์–ด์ฃผ๊ณ  ')'์ผ๋•Œ๋Š” pop์„ ํ•ด์ฃผ๋ฉฐ, ์ตœ์ข…์ ์œผ๋กœ ์Šคํƒ์ด ๋น„์–ด์žˆ๋‹ค๋ฉด true, ์•„๋‹ˆ๋ผ๋ฉด false๋ฅผ ๋ฐ˜ํ™˜ํ–ˆ์Šต๋‹ˆ๋‹ค.

๋Œ“๊ธ€