
원래 내 풀이
#include <iostream>
#include <string>
#include <vector>
using namespace std;
vector<string>::iterator itr;
int RecurFunc(vector<string> sContainer)
{
if(sContainer.size()==0) return 1;
for(itr = sContainer.begin(); itr != sContainer.end(); itr++)
{
if(*itr == *(itr+1))
{
sContainer.erase(itr, itr+1);
RecurFunc(sContainer);
}
}
return 0;
}
int solution(string s)
{
int answer = 0;
vector<string> sContainer;
for(int i=0; i<s.size(); i++)
{
sContainer.push_back(s.substr(i,1));
}
answer = RecurFunc(sContainer);
return answer;
}

return 1이후 에러나는데 이유를 모르겠다;;
#include <iostream>
#include <string>
#include <vector>
#include <stack>
using namespace std;
int solution(string s)
{
stack<char> sContainer;
int answer = 0;
for(int i=0; i<s.size(); i++)
{
if(sContainer.size() == 0 || sContainer.top() != s[i])
{
sContainer.push(s[i]);
}
else
{
sContainer.pop();
}
}
if(sContainer.size()==0)
{
return 1;
}
return answer;
}
stack에 string을 넣으면 안되고 char로 넣어야한다.
재귀함수다시 살펴보고 재귀로 풀어보기