Stack - 백준3986 좋은 단어

이형석·2024년 1월 27일

알고리즘 Phase1

목록 보기
7/59

조건
1. 모든 글자는 짝이 존재
2. 짝끼리 아치형 곡선을 이었을때 교차 존재 X

풀이
1. 순서대로 넣으면서 stack.peek와 같으면 pop, else push
2. 다 넣었을때 stack.isEmpty()면 answer++

import java.io.*;
import java.util.*;

public class Main{
    public static void main(String[] args) throws IOException{
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        
        int n = Integer.parseInt(br.readLine());
        int answer = 0;
        for(int i = 0; i < n; i++){
            String str = br.readLine();
            
            Stack<Character> stack = new Stack<>();
            for(int j = 0; j < str.length(); j++){
                char tmp = str.charAt(j);
                if(stack.isEmpty()){
                    stack.push(tmp);
                }else{
                    char peek = stack.peek();
                    if(tmp == peek){
                        stack.pop();
                    }else{
                        stack.push(tmp);
                    }
                }
            }
            if(stack.isEmpty()){
                answer++;
            }
        }
        System.out.println(answer);
    }
}
profile
금융IT 개발자

0개의 댓글