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

이경민·2023년 1월 2일
0

스택/큐

목록 보기
2/4

✅ 목적

  • arr: 배열의 각 원소는 숫자 0부터 9까지 중의 정수로 이루어짐

배열 arr에서 연속적으로 나타나는 같은 숫자는 하나만 남기고 전부 제거하여 반환
(단, 제거된 후 남은 수들을 반환할 때는 배열 arr 원소들의 순서를 유지)

✅ 아이디어

arr의 원소를 앞에서부터 순서대로 꺼내 리스트에 추가하는데,
지금 꺼낸 원소와 바로 앞 순서에서 뽑은 원소가 같을 경우 추가하지 않고 다음 순서로 넘어가고자 한다.


❗정확성 O, 효율성 O

from collections import deque

def solution(arr):
    answer = []
    dq = deque(arr)
    
    for i in range(len(dq)):
        a = dq.popleft()
        if (i>=1) and (a==answer[-1]):
            continue
        else:
            answer.append(a)
    
    return answer

✅ 주요 함수

  • deque: 양방향 대기열 자료구조
    • popleft(): 맨 앞(왼쪽)에 있는 원소 1개 삭제 후, 반환
profile
열정 가득한 공간

0개의 댓글