코딩테스트/python
[programmers/python] 연속된 숫자 제거하기 – 스택/큐
zyin
2025. 5. 28. 08:27
문제 설명
- url : https://school.programmers.co.kr/learn/courses/30/lessons/12906
배열 arr에서 연속적으로 같은 숫자가 반복되는 경우, 하나만 남기고 모두 제거해야 한다. 숫자의 등장 순서는 유지해야 하며, 단순한 중복 제거가 아니다.
예시
arr = [1, 1, 3, 3, 0, 1, 1] # 결과: [1, 3, 0, 1]
arr = [4, 4, 4, 3, 3] # 결과: [4, 3]
풀이 코드
def solution(arr):
if not arr:
return []
pre = arr[0]
answer = [pre]
for it in arr[1:]:
if it != pre:
answer.append(it)
pre = it
return answer
핵심 아이디어
- 배열을 순차적으로 순회하며,
- 이전 값과 다를 때만 결과 리스트에 추가한다.
- 시간복잡도는 O(n)으로 효율적이다.