- 요소의 개수가 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 |