호기심 많은 분석가

[프로그래머스] 연습문제 - 같은 숫자는 싫어 (Python) 본문

Coding/Coding Test & Algorithm

[프로그래머스] 연습문제 - 같은 숫자는 싫어 (Python)

DA Hun 2021. 7. 5. 22:12
 

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

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

programmers.co.kr

from collections import deque
def solution(arr):
    arr = deque(arr)
    answer = []
    answer.append(arr.popleft())
    while arr :
        input_val = arr.popleft()
        if answer[-1] != input_val :
            answer.append(input_val)
    return answer

 여러 방법으로 풀다가 효율성에서 걸리던 와중 가장 좋은 풀이를 찾았다. 문제에 조건에 맞춰 배열의 앞에서부터 하나씩 없애주면서 결과값에 없는 값들만 추가해주었는데, pop(0)로 하니까 효율성에서 걸렸다. 그래서 더 빠른 알고리즘인 deque의 popleft()를 사용해서 해결했다. 

 from collections의 deque import 꼭 기억해두자