Algorithms/LeetCode

[LeetCode] 2390. Removing Stars From a String

junhwa100 2024. 11. 16. 09:38

1. 문제 이해

문자열 s가 주어진다.

s에는 별표 *가 포함되어 있다.

하나의 작업에서 문자열의 별표 하나를 선택하고 해당 별표의 왼쪽에 있는 가장 가까운 별표가 아닌 문자를 제거하고, 별표 자체도 제거한다.

모든 별표가 제거된 후 남는 문자열을 리턴한다.

 

 

2. 풀이 과정

스택 자료형을 사용한다.

Python에서는 리스트를 스택처럼 사용할 수 있다.

 

for문으로 문자열 s를 순회하면서 *라면 스택에 추가하지 않고, 스택의 가장 최근 요소를 제거한다.

*가 아니라면 스택에 추가한다.

 

 

3. 전체 코드

class Solution:
    def removeStars(self, s: str) -> str:
        stack = []
        for char in s:
            if char == '*':
                stack.pop()
            else:
                stack.append(char)
        return ''.join(stack)

 

 

4. 생각할 점

- 스택(리스트)를 문자열로 바꾸기 위해서는 join을 사용한다.

 

 

5. 출처

- https://leetcode.com/problems/removing-stars-from-a-string/?envType=study-plan-v2&envId=leetcode-75