프로그래머스(Python) 풀이/Level.2

프로그래머스(Python) 12973번 짝지어 제거하기 풀이

개발윗미 2022. 5. 5. 16:33

Python으로 구현한 12973번 짝지어 제거하기 문제 풀이입니다.

 

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

 

코딩테스트 연습 - 짝지어 제거하기

짝지어 제거하기는, 알파벳 소문자로 이루어진 문자열을 가지고 시작합니다. 먼저 문자열에서 같은 알파벳이 2개 붙어 있는 짝을 찾습니다. 그다음, 그 둘을 제거한 뒤, 앞뒤로 문자열을 이어 붙

programmers.co.kr


def solution(s) :
    stack = []

    for value in s :
        if not stack :
            stack.append(value)
        else :
            if stack[-1] == value :
                stack.pop()
            else :
                stack.append(value)

    if stack :
        return 0

    return 1

 

1. 문자열 s의 각 문자를 하나씩 확인하여 stack 리스트에 해당 문자가 없다면 stack 리스트에 해당 문자를 추가한다.

 

2. 현재 확인하고 있는 문자가 stack 리스트에 있다면 stack 리스트의 가장 마지막 요소와 비교하여 일치하면 마지막 요소를 제거하고, 일치하지 않다면 문자를 리스트에 추가한다.

 

3. 모든 문자에 대한 확인이 끝나면 최종적으로 stack 리스트를 확인하여 요소가 있다면 0을 반환하고, 아니라면 1을 반환한다.