코딩테스트/leetcode

99클럽 코테 스터디 30일차 TIL, Stack(Removing Stars From a String)

feel2 2024. 6. 24. 21:15
반응형

1. 문제 정의

2. 문제 접근

*가 나올때마다 stack에서 제거해주면 될 것 같다.

3. 문제 풀이

  1. string 을 char 배열로 만들어서 순회한다.
  2. '*' 만날때마다 stack에서 맨 위의 문자를 빼준다.
  3. 정답을 리턴한다.

4. 코드

class Solution {
    public String removeStars(String s) {
        Stack<Character> stack = new Stack<>();
        StringBuilder sb = new StringBuilder();

        for(char ch:s.toCharArray()){
            if(ch == '*'){
                stack.pop();
            } else {
                stack.add(ch);
            }
        }

        for(char ch:stack){
            sb.append(ch);
        }
        return sb.toString();
    }
}

 

5. 회고

() 이거 문제랑 비슷한 것 같다. 이제 이런 비슷한 유형을 보면 금방 문제를 볼 수 있을 것 같다.

반응형