Coding Test/Algorithm #Python3

[프로그래머스] 같은 숫자는 싫어 #스택/큐 #알고리즘

harrym8n 2025. 3. 20. 22:45

문제 바로가기 👉 프로그래머스


☑️  문제 요약

배열 arr에서 연속적으로 중복된 숫자를 하나만 남기고 제거해야 합니다.

남은 숫자들의 순서는 유지해야 합니다.

제한 사항
• arr의 길이는 최대 1,000,000
• arr의 원소는 0~9 사이의 정수

 

☑️  KEY 포인트

  1. 반복문을 통해서 배열의 첫번째 숫자부터 그 다음 숫자와 비교하며 체크해 나간다.
  2. 2가지의 갈래로 경우의 수를 나눠야 한다.
    (1) 배열의 끝자리일 때와 아닐 때
    (2) 현재 숫자가 다음 숫자와 같을 때와 아닐 때
  3. 배열의 끝자리가 아닐 때, 현재 숫자와 다음 숫자를 비교하여 두 수가 다르면 현재 숫자를 answer 리스트에 추가
  4. 현재 숫자가 배열의 끝자리일 경우 무조건 answer 리스트에 추가

 

☑️  해결 코드

def solution(arr):
    answer = []
    for i in range(len(arr)):
        if i == (len(arr)-1):
            answer.append(arr[i])
        else:
            if arr[i] != arr[i+1]:
                answer.append(arr[i])
    return answer