단어 위로 아치형 곡선을 그어 같은 글자끼리(A는 A끼리, B는 B끼리) 쌍을 짓기로 하였다.
만약 선끼리 교차하지 않으면서 각 글자를 정확히 한 개의 다른 위치에 있는 같은 글자와 짝 지을수 있다면, 그 단어는 '좋은 단어'이다.
input:
3
ABAB
AABB
ABBA
answer:
2
#include <iostream>
#include <stack>
#include <string>
#include <algorithm>
using namespace std;
int main() {
ios_base::sync_with_stdio(false);
cin.tie(NULL); cout.tie(NULL);
int n;
cin >> n;
int cnt = 0;
while (n--) {
string input;
cin >> input;
stack<char> st;
int len = input.length();
for (int i = 0; i < len; ++i) {
char inputChar = input[i];
if (st.empty()) {
st.push(inputChar);
}
else {
if (st.top() == inputChar) {
st.pop();
}
else {
st.push(inputChar);
}
}
}
if (st.empty()) cnt++;
}
cout << cnt;
return 0;
}