먼저 문자열에서 같은 알파벳이 2개 붙어 있는 짝을 찾습니다. 그다음, 그 둘을 제거한 뒤, 앞뒤로 문자열을 이어 붙입니다.
여기서 주목해야 할 점은 짝지어서 2개씩 이에요!
예를 들어
baabaa에서 비교 순서를 문자열 인덱스를 통해서 알아보겠습니다.
baabaa
ba -> [비교인덱스1 : 0,비교인덱스2: 1]
aa -> [비교인덱스1 : 1,비교인덱스2: 2]
bbaa
bb -> [비교인덱스1 : 0,비교인덱스2: 1]
aa
aa -> [비교인덱스1 : 0,비교인덱스2: 1]
- 비교 이후에 두 문자열이 다르면 비교 인덱스가 변하는데, 같으면 이전 비교 인덱스와 다음 문자열을 비교해주는 것을 알 수 있습니다.
- 앞에 지나온 문자열이 같지 않는다면 곧 죽어도 짝지어 사라질 수 없다. 때문에 사라진 문자열 이전의 문자열 과 사라진 문자열 다음의 문자열 만 고려해서 풀면 된다.
- 따라서 지난 문자열에 대해서는 다른 곳에 저장하고 저장한 문자열의 마지막 값만 비교해준다.
def solution(s):
pass_string = []
for i in s:
if len(pass_string) == 0:
pass_string.append(i)
elif pass_string[-1] == i:
pass_string.pop()
else:
pass_string.append(i)
if len(pass_string) == 0:
return 1
else:
return 0
🤔 어떤 로직을 암기할까?
2개 비교는 pop과 append를 통해서 시도해보자!!