알고리즘

프로그래머스 - 문자열 나누기

쿠키담임선생님 2023. 2. 18. 21:11

풀이과정



1. 스택사용
2. 스택 =0 -> add(b)
3. 스택 !=0 -> if(stack.peek() == 현재문자) -> push(현재문자)
-> if(stack.peek() != 현재문자) -> stack.pop()
4. if(stack.isEmpty()) -> result++ -> 2번으로 돌아감. 해당 반복은 idx 변수 이용.
5. 마지막에 남는 a 는 answer에 넣어줌

 

코드


import java.util.*;
class Solution {
    public int solution(String s) {
        int answer = 0;
        int idx =0;
        Stack<Character>stack = new Stack<>();
        //idx 가 s.legnth() 의 끝까지
        while(idx!=s.length()){
            if(stack.isEmpty()){
                stack.push(s.charAt(idx));
                idx++;
            }else{
                if(stack.peek()!=s.charAt(idx)){
                    stack.pop();
                    idx++;
                }else{
                    stack.push(s.charAt(idx));
                    idx++;
                }
            }
            if(stack.isEmpty()){
                answer++;
            }
        }
        if(!stack.isEmpty()){
            answer++;
        }
        return answer;
    }
}