최대 1 분 소요

문제 링크

내 풀이

def solution(s):
    a_list = []
    for a in s:
        if a_list:
            if a_list[-1] == a:
                a_list.pop()
            else:
                a_list.append(a)
        else:
            a_list.append(a)
    if a_list:
        return 0
    else:
        return 1

다른 풀이

def solution(s):
    
    stack = [] # 스택을 초기화
    
    # 문자열 s의 각 문자에 대해 순회
    for i in s:
        
        # 스택이 비어있지 않고, 스택의 top에 있는 문자와 현재 문자가 같다면
        if stack and stack[-1] == i:
            stack.pop() # 스택에서 pop을 합니다.
            continue  # 다음 문자로 넘어갑니다.
        
        stack.append(i) # 그렇지 않다면 현재 문자를 스택에 push합니다.

    # 모든 문자를 순회한 후에 스택이 비어있다면 짝지어 제거하기가 성공적으로 수행된 것이므로 1을 반환
    # 그렇지 않다면 0을 반환
    return int(not stack)
출처: https://1ets-just-do-it.tistory.com/124 [파이썬은 신이야🔥🔥🔥:티스토리]

풀이 해석

  • 스택을 활용하여 풀이하였다
  • return int(not stack)을 활용하여 정답 도출

배울 점

  • int(not stack)의 사용

댓글남기기