728x90
programmers.co.kr/learn/courses/30/lessons/12973
접근
스택을 활용하였다.
스택의 top과 다른 글자면 push하고 같은 글자면 pop하여 스택이 비어있는지 그렇지 않은지에 따라 최종해를 반환한다.
구현
입력된 문자열을 리스트로 변경한다.
각 리스트를 탐색하면서 스택의 top과 같다면 pop, 다르다면 push를 한다.
리스트를 모두 탐색했을 때 스택에 값이 들어있다면 실패, 스택이 비어있다면 성공을 반환한다.
def solution(s):
answer = 0
ss = list(map(str, s))
stack = []
for s in ss:
# 스택이 비어있다면 문자를 추가
if len(stack) == 0:
stack.append(s)
else:
# 스택의 top과 같다면 pop
if stack[-1] == s:
stack.pop()
# 스택의 top과 다르다면 push
else:
stack.append(s)
# 위 과정에서 스택이 비어있다면 성공
if len(stack) == 0:
answer = 1
else:
answer = 0
return answer
'알고리즘 풀이 > 프로그래머스' 카테고리의 다른 글
[Level 2] 삼각 달팽이 (0) | 2021.03.05 |
---|---|
[Level 2] 멀쩡한 사각형 (0) | 2021.03.04 |
[Level 2] N개의 최소공배수 (0) | 2021.03.04 |
[Level 2] 최댓값과 최솟값 (0) | 2021.03.04 |
[Level 2] 소수 찾기 (0) | 2021.03.04 |