알고리즘 유형 : 연습 문제
풀이 없이 스스로 풀었나요? : ❌
def solution(s):
start = 0
while start < len(s) - 1:
if s[start] == s[start + 1]: # 현재 원소와 다음원소가 같다면
s = s.replace(s[start] + s[start], '', 1) # 공백으로 대체하여 제거
start = max(0, start - 1) # 제거된 후 마지막 인덱스 설정
else:
start += 1 # 현재 원소와 다음 원소가 다르다면 인덱스 +1
if len(s) == 0:
return 1
else:
return 0
def solution(s):
stack = []
for i in range(len(s)):
if not stack:
stack.append(s[i]) # stack이 비어있다면 push()
else:
if s[i] == stack[-1]: # stack 마지막 값과 s[i]가 같다면 pop()
stack.pop()
else:
stack.append(s[i]) # stack 마지막 값과 s[i]가 다르면 push()
if not stack:
return 1 # stack이 비어있다면 return 1
else:
return 0 # stack이 비어있지 않다면 return 0
while, replace를 사용하여 풀고자 했으나 시간 초과 발생하였으나
스택을 떠올리지 못해 시간 초과를 해결하지 못했다. 😥
스택을 사용하면 쉽게 풀 수 있다.