#include<string>
#include <stack>
using namespace std;
 
int solution(string s)
{
    stack<char> sStack = {};
    int iNum = 0;
    int iSize = s.size();
    char cStack = {};
 
    // 시작 전 처음꺼 입력
    sStack.push(s[0]);
 
    while (iNum + 1 < iSize)
    {
        // Stack이 비어있지 않으면 처음꺼를 입력
        if (sStack.size())
            cStack = sStack.top();
 
        // 다음꺼랑 같다면 빼고 다르다면 다시 입력
        if (cStack == s[iNum + 1])
            sStack.pop();
        else
            sStack.push(s[iNum + 1]);
 
        // 다시 같다가 입력될 수 있으니까 삭제
        cStack = '\0';
 
        ++iNum;
    }
 
    return sStack.size() ? 0: 1;
}
 

처음에는 선형탐색으로 풀었다가 효율성에서 탈락

그래서 스택으로 했더니 합격! 효율성은 맨날 떨어지는데... 좀 생각해보고 풀어야할 듯!

+ Recent posts