이숭간 공부기록

[프로그래머스] 파이썬 _ 짝지어 제거하기 본문

알고리즘/프로그래머스

[프로그래머스] 파이썬 _ 짝지어 제거하기

이숭간 2021. 6. 29. 11:13
728x90

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

 

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

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

programmers.co.kr

 

문제유형 : 스택

 

문제풀이 :

 

  • 짝짓는 문제 - 스택을 이용하면 쉽게 풀수 있다.
    • 스택이 비어있는지 확인하고 비어있다면 값을 넣어준다.
    • 스택이 비어있지 않다면 넣기전에 가장 상단에 있는 값현재 넣으려는 값을 비교하고 같으면 스택에 값을 추가하지 않고 pop을 통해 제거만 한다.
    • 마지막에 스택이 비어있다면 1을, 남아있다면 0을 출력하도록 한다.
  • 얼마전에 풀었던 카카오 코테에서 나온 괄호 짝짓기와 유사해서 금방 풀수있었다

 

정답코드 :

def solution(s):
    stack = []
    
    for i in s:
        # 스택이 비어있지 않다면
        if stack:
            if stack[-1] == i:
                stack.pop()
            else:
                stack.append(i)
        else:
            stack.append(i)
    
    if stack:
        return 0
    return 1