나의 개발일지

[프로그래머스] Lv.2 짝지어 제거하기 [Python, 파이썬] 본문

프로그래머스

[프로그래머스] Lv.2 짝지어 제거하기 [Python, 파이썬]

YoonJuHan 2023. 4. 7. 21:26
  • 문제 : https://school.programmers.co.kr/learn/courses/30/lessons/12973
  • 🔑 : 스택
  • 문자열 길이만큼만 반복하면 끝
  • 스택이 비었거나 현재 문자(s[i])와 스택의 마지막(stack[-1])이 다르면 append
  • 현재 문자와 스택의 마지막 요소가 같으면 스택에서 빼낸다.
  • 최종적으로 스택이 비어있으면 모든 문자열을 없앨 수 있다는 뜻
def solution(s):
    stack = []

    for i in range(len(s)):
        if not stack:
            stack.append(s[i])          # 스택이 비어있다면 넣기
        else:
            if s[i] == stack[-1]:       # 스택 마지막 값과 s[i]가 같으면 빼냄
                stack.pop()
            else:
                stack.append(s[i])      # 스택 마지막 값과 s[i]가 다르면 넣기

    if stack : return 0                 # 스택이 비어있지 않다면 return 0
    else : return 1                     # 스택이 비어있으면 모두 없앤 것

 

Comments