백준 - 좋은 단어( 3989번, JAVA )

changi123·2024년 6월 20일
0
post-thumbnail

Stack ( https://www.acmicpc.net/problem/3986 )

풀이

  • 이 문제는 그냥 예제를 직접 써보고 풀어보면 간단하다.
  • 만약 스택이 비어있지 않다면 ( 하나라도 존재한다면 ) 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);
			
	}

}

profile
개발자 홍찬기 꾸준한 사람이 되자

0개의 댓글

관련 채용 정보