자료구조/Stack_Queue 부분의 올바른 괄호 문제이다.

이거랑 비슷한 문제를 자료구조 수업때 한 기억이 나서 기억나는대로 코드를 설계했다.
Stack을 이용해 여는 괄호이면 push를 해주고 닫는 기호가 나오면 pop을 해주어서 비교하는 식이다.
비교를 했을때 안맞는다면 false를 리턴한다.
그렇게 비교해 나가면서 마지막에서 Stack에 남아있는 자료가 있다면 false를 리턴해주고
stack이 비어있다면 true를 리턴해준다.
#include<string>
#include <iostream>
#include<vector>
#include<stack>
using namespace std;
//올바른 괄호
bool solution(string s)
{
bool answer = true;
stack<char> st;
for (int i = 0; i < s.size();i++) {
if (s[i] == '(') {
st.push(s[i]);
}
else {
if (!st.empty()&&st.top() == '(') {
st.pop();
}
else {
answer = false;
break;
}
}
}
if (st.empty()) {
return answer;
}
else
return !answer;
}