본문 바로가기
Coding Test/Python

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

by giem 2022. 8. 31.
반응형

 

프로그래머스 짝지어 제거하기를 파이썬으로 풀어보겠다.

난이도는 레벨 2다.


문제

 

문자열에 연속된 부분을 다 지우는 것이다.


구현

처음에는 while로 구현하고 반복되는 문자가 나올 때마다

삭제하고 뒤로 돌아갈까 생각했지만 여러 번 지워질 때 성능이 좋지 않아서

다른 방법을 고민했다.

 

stack구조로 구현하는 게 제일 쉽고 효율성이 잘 나올 거라고 판단해서

stack구조를 사용했다.

 

반복문으로 문자열을 돌면서 stack의 top값과 같으면 pop을 하고

아니면 insert를 하는 방식을 선택했다.


코드

 

def solution(s):
    temp = []
    temp.append(s[0])
    for c in s[1:]:
        if temp and temp[-1]==c:
            temp.pop()
        else:
            temp.append(c)

    return 0 if len(temp) else 1

위의 구현에서의 설명과 같이 구현했다.

 


다른 풀이

효율성 테스트가 있어서 그런지

다른 방법은 보이지가 않고

 

코드의 가독성도 이 정도면 괜찮다고 생각해서 다른 풀이를 따로 하지 않겠다.

- 혹시 괜찮은 풀이가 있다면 댓글로 알려주세요!

 

 

반응형

댓글