본문 바로가기

알고리즘 삽질장

[프로그래머스] 같은 숫자는 싫어

반응형


문제설명

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

 

코딩테스트 연습 - 같은 숫자는 싫어

배열 arr가 주어집니다. 배열 arr의 각 원소는 숫자 0부터 9까지로 이루어져 있습니다. 이때, 배열 arr에서 연속적으로 나타나는 숫자는 하나만 남기고 전부 제거하려고 합니다. 단, 제거된 후 남은

programmers.co.kr

사고과정

  • 스택을 활용하는 전형적인 문제이다. 스택이 비어있을 때는 바로 숫자를 넣고, 다음 배열의 원소를 돌때마다 스택의 가장 상위값을 확인하고 가장 상위값과 같으면 넣지말고 다르면 넣는 방식으로 구현하면 된다.

풀이

def solution(arr):
    stack = []
    for a in arr:
        if not stack:
            stack.append(a)
        elif stack[-1] != a:
            stack.append(a)
    return stack
반응형