알고리즘[Python]/프로그래머스
[Lv 2] 짝지어 제거하기
병훈1234
2021. 6. 20. 12:56
- 요소의 개수가 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