[ Programmers 12973 ] 짝지어 제거하기(Python)

uoayop·2021년 5월 7일
0

알고리즘 문제

목록 보기
35/103
post-thumbnail

문제

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

스택을 이용하는 문제다.
간단한 문제인데, 처음에 문자열로 접근해서 오래 걸렸다.


문제 풀이

  1. 문자열을 앞에서부터 순차적으로 스택에 넣어줄 것이다.
  2. 스택이 비어있으면 문자를 넣어준다.
  3. 스택 가장 위에 있는 문자가 지금 삽입하려는 문자와 같으면
    스택에서 문자를 꺼내준다.
  4. 스택 가장 위에 있는 문자와 같지 않으면 스택에 문자를 넣어준다.
  5. 문자열을 다 넣었을 때, 스택이 비어있으면 모든 문자가 짝지어 제거된 것이다!

코드

def solution(s):
    stack = []
    
    for c in s:
        if (not stack):
            stack.append(c)
            
        else:
            if (stack[-1] == c):
                stack.pop()
            else:
                stack.append(c)
                
    if (stack):
        return 0
    return 1
profile
slow and steady wins the race 🐢

0개의 댓글