프로그래머스 LV2 - 짝지어 제거하기
내 풀이
def solution(s):
a_list = []
for a in s:
if a_list:
if a_list[-1] == a:
a_list.pop()
else:
a_list.append(a)
else:
a_list.append(a)
if a_list:
return 0
else:
return 1
다른 풀이
def solution(s):
stack = [] # 스택을 초기화
# 문자열 s의 각 문자에 대해 순회
for i in s:
# 스택이 비어있지 않고, 스택의 top에 있는 문자와 현재 문자가 같다면
if stack and stack[-1] == i:
stack.pop() # 스택에서 pop을 합니다.
continue # 다음 문자로 넘어갑니다.
stack.append(i) # 그렇지 않다면 현재 문자를 스택에 push합니다.
# 모든 문자를 순회한 후에 스택이 비어있다면 짝지어 제거하기가 성공적으로 수행된 것이므로 1을 반환
# 그렇지 않다면 0을 반환
return int(not stack)
출처: https://1ets-just-do-it.tistory.com/124 [파이썬은 신이야🔥🔥🔥:티스토리]
풀이 해석
- 스택을 활용하여 풀이하였다
- return int(not stack)을 활용하여 정답 도출
배울 점
- int(not stack)의 사용
댓글남기기