스택/큐
프로그래머스 - 같은 숫자는 싫어
def solution(arr):
if not arr: # 배열이 비어있을 경우
return []
result = [arr[0]] # 결과 배열에 첫 번째 원소 추가
for i in range(1, len(arr)):
if arr[i] != arr[i - 1]: # 이전 원소와 다를 경우
result.append(arr[i]) # 결과 배열에 추가
return result
설명:
초기화: 결과 배열 result를 첫 번째 원소로 초기화합니다.
순회: 배열의 두 번째 원소부터 끝까지 순회하면서, 현재 원소가 이전 원소와 다를 경우에만 결과 배열에 추가합니다.
반환: 최종적으로 결과 배열을 반환합니다.
예시:
arr = [1, 1, 3, 3, 0, 1, 1]일 때, 함수는 [1, 3, 0, 1]을 반환합니다.
arr = [4, 4, 4, 3, 3]일 때, 함수는 [4, 3]을 반환합니다.
이 방법은 배열을 한 번만 순회하므로 시간 복잡도는 O(n)이며, 공간 복잡도는 결과 배열의 크기에 따라 달라집니다. 이 구현은 주어진 제약 조건을 만족합니다.
99클럽 코테 스터디 17일차 TIL + 오늘의 학습 키워드 : 스택/큐 (4) | 2024.11.13 |
---|---|
99클럽 코테 스터디 16일차 TIL + 오늘의 학습 키워드 : 스택/큐 (3) | 2024.11.12 |
99클럽 코테 스터디 14일차 TIL + 오늘의 학습 키워드 : 큐 (0) | 2024.11.10 |
[챌린지]99클럽 코테 스터디 13일차 TIL + 오늘의 학습 키워드 : 스택 (6) | 2024.11.09 |
99클럽 코테 스터디 12일차 TIL + 오늘의 학습 키워드 : 스택 (1) | 2024.11.08 |