https://programmers.co.kr/learn/courses/30/lessons/12973
이런식으로 데이터를 넣어줍니다. 왜 이걸 쓰냐면 메모리를 효율적으로 쓰기 위해서 입니다. 지금 이 문제에서 우리는 주어진 문자열을 모두 알 필요가 없습니다.
문제를 잘 이해해 본다면 우리는 지금까지 처리되지 못한 문자와 다음 문자만 알면 됩니다. 코드로 구현하면 다음과 같이 됩니다.
stack = []
for i in s:
if len(stack) != 0:
if i == stack[-1]:
stack.pop()
else:
stack.append(i)
else:
stack.append(i)
처음에 스택에는 아무것도 들어있지 않습니다. 하지만 위에 있는 그림처럼 우리는 문자를 하나씩 넣어줍니다 (append를 push로 이해하면 될 것 같습니다!).
이러한 상황에서 if 새로 들어올 친구가 맨 위에 있는 스택과 같다면 스택을 pop하게 됩니다.
def solution(s):
stack = []
for i in s:
if len(stack) != 0:
if i == stack[-1]:
stack.pop()
else:
stack.append(i)
else:
stack.append(i)
if len(stack) == 0:
return 1
else:
return 0
도움이 되었기를 바라면서 글을 마치겠습니다.