https://programmers.co.kr/learn/courses/30/lessons/12973#
어찌 풀긴했는데 코드를 보다시피 복잡하다..ㅎ
기본 논리는 스택을 기본으로 해서 index를 조절해서 문제의 조건에 맞게 짝지어서 제거하는 논리를 수행하였다.
더 간단한 코드의 논리도 동일하다.
result의 마지막 끝 값과 문자열의 값과 비교하는 것이다.
def solution(s):
stack=[]
stack.append(s[0])
index=1
while True:
if index==len(s):
break
if len(stack)==0:
stack.append(s[index])
index+=1
pick=stack.pop()
#print(index,pick)
if index==len(s):
stack.append(pick)
for i in range(index,len(s)):
if pick!=s[i]:
stack.append(pick)
stack.append(s[i])
index+=1
break
else:
index+=1
break
#print(stack)
if len(stack)==0:
return 1
return 0
더 간단한 코드
def solution(s):
result = []
for i in s:
if len(result)==0:
result.append(i)
else:
if result[-1]==i:
result.pop()
else:
result.append(i)
if len(result)==0:
return 1
return 0