본문 바로가기
코딩테스트

[파이썬] 짝지어 제거하기 - 2017 팁스타운 [CODING TEST #16]

by ALTERww 2022. 7. 25.
320x100

https://school.programmers.co.kr/learn/courses/30/lessons/12973

 

 

앞에서부터 알파벳을 Stack에 넣고 나서, 맨 뒤의 알파벳 2개가 같은 경우를 while문을 이용하여 제거하도록 하면 될 거라고 생각했다. 이렇게 하면 대칭형 문자열이어서 연속적으로 제거되는 경우에도 while문에 해당되므로 모두 제거된다.

 

from collections import deque
def solution(s):
    answer = -1
    new_s = deque() # Stack
    for alpha in s:
        new_s.append(alpha)
        while len(new_s) > 1 and new_s[-1] == new_s[-2]:
            new_s.pop()
            new_s.pop()
    if len(new_s) == 0 : answer = 1
    else : answer = 0
    return answer

 

댓글