문제 설명
내 풀이
이번 문제는 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;
}