카테고리 없음

[프로그래머스 Programmers][Python] 짝지어 제거하기

puff 2020. 4. 1. 18:59

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

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

괄호 문제랑 비슷한 문제로 스택을 쓰면 해결된다.

string s의 처음부터 차례차례 스택에 넣으며 맨 위쪽과 현재 문자가 같으면 스택에서 하나를 제거한다.

아니면 그 문자를 스택에 넣는다.

처음이거나 중간에 다 지워지거나 했을 경우를 대비하여 len(st)==0 스택이 비었으면 무조건 문자 하나를 넣고 본다.

스택의 길이가 0이면 완전히 지워진 상태이므로 return 1 , 아니면 return 0을 한다. 

def solution(s):

    st = []
    for i in range(len(s)):
        if len(st) == 0:
            st.append(s[i])
            continue
        if st[-1] == s[i]:
            st.pop()

        else:
            st.append(s[i])
            

    if len(st) == 0:
        return 1
    else:
        return 0