코딩테스트 연습 > 2017 팁스타운 > 짝지어 제거하기
https://programmers.co.kr/learn/courses/30/lessons/12973
import collections
def solution(s):
# 1. 모든 문자가 짝수개인지 확인
cnt = collections.Counter(s)
for key, val in cnt.items():
if val % 2 != 0:
return 0
# 2. 연속된 문자 제거
stack = "0"
for i in range(len(s)):
if stack[-1] == s[i]:
if len(stack) > 1:
stack = stack[:len(stack)-1]
else:
stack = ""
else:
stack += s[i]
if len(stack) != 1:
return 0
return 1
모든 문자가 짝수개인지 확인
Counter 를 이용해서 value 값이 짝수인지 확인
연속된 문자 제거
stack
문자열에 0
만 미리 넣어두고 (=> 문자열 길이 신경쓰기 싫어서..)
반복문 돌려서 stack
의 맨 끝 값과 s[i]
값이 같은지 확인
다르면 stack
에 s[i]
값 넣어주기
같으면 같은 문자만 stack
에서 빼줌
마지막에 0
만 남지 않으면 제거되지 않은 것이므로 return 0
나머지는 return 1