[백준] 3986 좋은 단어

0

백준

목록 보기
220/271
post-thumbnail

[백준] 3986 좋은 단어

  • https://www.acmicpc.net/problem/3986

  • 단어 위로 아치형 곡선을 그어 같은 글자끼리(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;
}

profile
Be able to be vulnerable, in search of truth

0개의 댓글