#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;
}
처음에는 선형탐색으로 풀었다가 효율성에서 탈락
그래서 스택으로 했더니 합격! 효율성은 맨날 떨어지는데... 좀 생각해보고 풀어야할 듯!
'오늘의 알고리즘' 카테고리의 다른 글
[C++]2019 KAKAO BLIND RECRUITMENT 실패율 (0) | 2022.02.13 |
---|---|
[C++]2021 Dev-Matching: 웹 백엔드 개발자(상반기)행렬 테두리 회전하기(프로그래머스 2레벨) (0) | 2022.02.11 |
[C++]그래프가장 먼 노드(프로그래머스 3레벨) (0) | 2022.02.08 |
[C++]이분탐색 입국심사(프로그래머스 3레벨) (0) | 2022.02.07 |
[C++]탐욕법(Greedy) 체육복(프로그래머스 1레벨) (0) | 2022.02.06 |