<알고리즘 문제풀이& 연습>/코딩테스트 연습
99클럽 코테 스터디 15일차 TIL + 오늘의 학습 키워드 : 스택/큐
데브수달
2024. 11. 11. 21:50
728x90
반응형
스택/큐
프로그래머스 - 같은 숫자는 싫어
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)이며, 공간 복잡도는 결과 배열의 크기에 따라 달라집니다. 이 구현은 주어진 제약 조건을 만족합니다.
728x90
반응형