프로그래머스
[프로그래머스] 짝지어 제거하기 (파이썬)
sami355
2023. 3. 31. 00:39
문제
https://school.programmers.co.kr/learn/courses/30/lessons/12973
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
설명
처음 접근을 문자열로 하여 분기처리를 하는등 어렵게 접근하였던 문제였다. 하지만 이 문제는 짝을 맞추는 문제고 이는 스택을 이용하면 비교적 쉽게 풀린다는 장점이 존재한다. 여기까지 생각이 다다른다면 이 다음은 단순 구현이다.
먼저 문제를 문자열을 차례차례 스택에 넣고 만약 스택의 가장 위에 존재하는 원소가 문자열에서 가르키고 있는 원소와 동일하다면 pop을 하고 아니면 append를 하면 된다.
코드
def solution(s):
st = []
st.append(s[0])
for c in s[1:]:
if not st:
st.append(c)
elif st[-1] == c:
st.pop()
elif not st[-1] == c:
st.append(c)
if st:
return 0
return 1