문제 : https://school.programmers.co.kr/learn/courses/30/lessons/12973
stack을 이용하여 순서대로 문자열 삽입.
문자열 삽입시에 공백인지 여부와 상단이 현재 넣으려는 값과 일치하는지 확인.
같다면 추가하지않고 상단의 값을 제거.
전부 반복 후에 값이 남아 있다면 0 아니면 1
#include <iostream>
#include <stack>
#include <string>
using namespace std;
int solution(string s) {
stack<char> charStack;
for (char c : s) {
// 스택이 비어있지 않고 최상단 문자와 현재 문자가 같다면
if (!charStack.empty() && charStack.top() == c) {
charStack.pop(); // 최상단 문자 제거
} else {
charStack.push(c); // 현재 문자 스택에 추가
}
}
// 스택이 비어있으면 성공적으로 짝지어 제거한 것
return charStack.empty() ? 1 : 0;
}