C++/programmers 코딩테스트(level 2) C++

[C/C++] programmers Level 2 올바른 괄호

CE : 하랑 2023. 9. 15. 21:22

 

 

 

 

 

코드

 

#include <string>
#include <stack> // 스택

using namespace std;

bool solution(string s)
{
    bool answer = true;
    stack<char> check;
    
    check.push(s[0]);
    if(check.top()=='('){ // 첫 문자는 반드시 '('
        for(int i=1;i<s.size();i++){
            if(s[i]=='('){ 
               check.push(s[i]); // s[i] 가 '(' 일시 push
            }else if(!check.empty() && check.top()=='('){ // 스택이 비어있지 않고 스택 맨 위 값이 '(' 일 때 pop 사용
                check.pop(); 
            }
        }
    }else{ // '(' 아닐 경우 false 반환
        answer=false;
    }
    
    if(check.empty()){ // 스택이 비어있는 경우 true
        answer=true;
    }else{ // 비어있지 않은 경우 false
        answer=false;
    }
    
    return answer;
}