풀이
- 이 문제는 그냥 예제를 직접 써보고 풀어보면 간단하다.
- 만약 스택이 비어있지 않다면 ( 하나라도 존재한다면 ) stack에 가장 먼저 나오는 문자를 push 하고 다음에 나오는 문자가 저장되어 있는 문자와 같다면 pop을 그게 아니라면 push 실행
- 비어있다면 문자 push
- 만약 전부 체크했는데 스택이 비어있다면 교차없이 모든 문자가 쌍이 됐다는 뜻이므로 좋은단어 cnt++ 카운트
package problem_solving.stack;
import java.util.Scanner;
import java.util.Stack;
public class BaekJoon_3986 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = Integer.parseInt(sc.next());
int cnt = 0 ;
while(n-- > 0 ) {
Stack<Character> st = new Stack<>();
String s = sc.next();
char c = s.charAt(0);
st.push(c);
for(int i= 1 ; i < s.length();i++) {
if( !st.isEmpty()) {
char stc = st.peek();
if( stc == s.charAt(i)) {
st.pop();
} else {
st.push(s.charAt(i));
}
}else {
st.push(s.charAt(i));
}
}
if( st.isEmpty()) {
cnt++;
}
}
System.out.println(cnt);
}
}