- 요소의 개수가 100만개여서 루프를 여러번 돌면서 검사하면 시간초과가 날 것 같았음.

- 따라서 요소를 스택에 넣어두고, 검사하는 요소와 스택의 맨 위 요소가 같다면 스택에서 빼주는 방식으로 구현

- 마지막에 stack이 비어있다면 제거 가능한 문자열이다.

from collections import deque
def solution(s):
    stack = deque()

    for c in s:
        if len(stack) == 0:
            stack.append(c)
        else:
            if stack[-1] == c:
                stack.pop()
            else:
                stack.append(c)

    answer = 0 if stack else 1
    return answer

출처: 프로그래머스 코딩 테스트 연습, https://programmers.co.kr/learn/challenges

'알고리즘[Python] > 프로그래머스' 카테고리의 다른 글

[ Lv 2 ] 오픈채팅방  (0) 2021.06.21
[Lv 2] 멀쩡한 사각형  (0) 2021.06.20
[Lv 2] 124 나라의 숫자  (0) 2021.06.20
[Lv 1] 이상한 문자 만들기  (0) 2021.06.19
[Lv 1] 소수 찾기  (0) 2021.06.19

+ Recent posts