😑 처음에는 문자열 함수 erase를 사용해서 풀려 했는
stack
을 사용하면 훨씬 훨씬 쉽게 풀수 있을 것이라 판단하여 풀려는 방식을 바꿨음.
stack.top()
값과 새로운 string
값을 비교해주고 위처럼 실행시키면 된다.#include <iostream>
#include <string>
#include <stack>
using namespace std;
int solution(string s)
{
int answer = 0;
stack <char> con; //값을 저장해 줄 stack
for(int i=0;i < s.size();i++)
{
if(!con.empty() && con.top() == s[i]) con.pop(); // stack의 top()을 사용하기 위해서는 거의 많은 상황에서 empty()의 가능성을 살펴보고 참조해야 함.
else con.push(s[i]); // 가장 마지막 값과 s[i]가 다를시에는 s[i]의 값을 없애줄 필요가 없으므로 push
}
if(con.size() == 0) answer = 1; // answer의 초깃값이 0이므로 그에 대한 상황은 생략.
return answer;
}
재밌다. 알고리즘은 재밌다.