from collections import deque
def solution(s):
s = deque(list(s))
ss = []
for _ in range(len(s)):
a1 = s.popleft() #["b","a","a","b","a","a"]
if ss == []:
ss.append(a1)
elif ss[-1] == a1:
ss.pop()
elif ss[-1] != a1:
ss.append(a1)
if ss != []:
return 0
else:
return 1
풀이
deque로 풀어야 시간초과가 나지 않는다.
deque에서 하나씩 pop하며 조건에 맞게 처리한다. 빈 리스트이면 pop한 원소를 추가하고, 리스트의 마지막 원소가 deque에서 pop한 원소와 같다면 리스트의 마지막 원소를 제거한다. 그리고 같지 않다면 pop한 원소를 리스트에 그대로 추가한다.
한 바퀴 모두 돌았을 때 리스트가 빈 리스트라면 0을 return 하고, 원소가 하나라도 있다면 1을 출력한다.