프로그래머스 올바른 괄호 - C++

JangGwon·2022년 8월 12일
0

문제 설명

내 풀이
이번 문제는 stack을 사용하여 풀었는데, '('를 만나게 된다면 스택에 넣고 ')'를 만나면 pop 하게 하였는데, 만약 ')'를 만나 pop을 했을 때 stack이 비어있거나 모든작업이 끝났는데 스택이 비어있으면 false를 return 그렇지 않으면 true를 return 하였다.


코드

#include<string>
#include <iostream>
#include <stack>

using namespace std;

bool solution(string s)
{
    bool answer = true;
    stack<char> c;
    for (int i = 0; i < s.size(); i++)
    {
        if(s[i] == '(')
            c.push('(');
        else
        {
            if (c.empty())
            {
                return false;
            }
            else if (c.top() == ')')
            {
                return false;
            }
            else if (c.top() == '(')
            {
                c.pop();
            }
        }
    }
    if (c.size() > 0)
        return false;
    
    return answer;
}

0개의 댓글