728x90
기본아이디어
요소 하나씩 보면서 전꺼랑 다르면 새 리스트에 append
def solution(arr):
answer = [arr[0]]
for i in range(1, len(arr)):
if arr[i] != arr[i-1]:
answer.append(arr[i])
return answer
- 첨에
collections.deque
로arr
를 감싼담에, 큐에서leftpop()
해가면서 전꺼랑 다르면answer
에appned()
했는데 - 그러면 리스트를 덱으로 감싸는 비용
O(n)
이 드니까. 굳이굳이 그럴 필요없음 - 리스트의 left요소 삽입 / 제거를 반복적으로 해야한다
O(n^2)
-> 덱으로 감싸기.popleft()
는O(1)
- 리스트의 left부터 요소를 탐색해야한다 -> 그냥 탐색 돌리기 (리스트 변형X)
728x90
'Programming > Python' 카테고리의 다른 글
[프로그래머스] 체육복 (0) | 2025.03.27 |
---|---|
[프로그래머스] 최소직사각형 (0) | 2025.03.27 |
[프로그래머스] 완주하지 못한 선수 (0) | 2025.03.26 |
[백준] 2164 | 카드2 (1) | 2024.12.11 |
[백준] 10773 | 제로 (0) | 2024.12.11 |