1209. Remove All Adjacent Duplicates in String II

Doyeon Kim·2022년 11월 5일

코딩테스트 공부

목록 보기
132/171

문제 링크 : https://leetcode.com/problems/remove-all-adjacent-duplicates-in-string-ii/description/


주어진 s에서 k만큼 겹치는 숫자들을 제거한 나머지를 반환하는 문제이다.

s의 문자들을 [문자, 개수]로 저장할 stack을 만들고
stack안의 개수가 k와 같아지면 pop한다.

이후 stack의 글자들을 반환한다.

시간 복잡도는 O(N). (N = |s|)

class Solution:
    def removeDuplicates(self, s: str, k: int) -> str:
        stack = [] #[char, cnt]

        for i in s:
            if stack and stack[-1][0] == i:
                 stack[-1][1] +=1
            else:
                stack.append([i, 1])
            if stack[-1][1] == k:
                stack.pop()
        return ''.join(i * cnt for i, cnt in stack)
profile
성장하고 도전하는 개발자. 프로그래밍 좋아하세요?

0개의 댓글