백준 3986번

상인·2023년 2월 3일
0

문제-https://www.acmicpc.net/problem/3986
문제에서 짝짓기가 필요한 문제는 스택을 사용하는것을 고려해 보기

#include <bits/stdc++.h>
using namespace std;
int n,cnt;
string s;
int main(){
	ios_base::sync_with_stdio(false);
	cin.tie(NULL); cout.tie(NULL);
	cin>>n;
	for(int i=0;i<n;i++){
		stack<char> stk;
		cin>>s;
		for(int i=0;i<s.size();i++){
			if(stk.size()==0)stk.push(s[i]); //스택에 아무것도 없으면 푸쉬
			else if(stk.top()==s[i])stk.pop(); //스택의 제일 위에 값과 같으면 그 값을 삭제
			else stk.push(s[i]); //같지않으면 푸쉬		
		}
		if(stk.size()==0)cnt++;//스택에 남아있는 값이 없으면 좋은 단어 
	}
	cout<<cnt;
}
profile
상상그이상인

0개의 댓글