본문 바로가기
알고리즘이야기/프로그래머스_알고리즘_lv1

같은 숫자는 싫어

by 효우너 2020. 5. 5.
728x90
반응형
문제 출처 : https://programmers.co.kr/learn/courses/30/lessons/12906

예시로 arr = [1, 1, 3, 3, 0, 1, 1] 이면 [1, 3, 0, 1] 을 return하는 문제를 풀어야 한다.

문제를 제대로 읽지 않는다면 set을 사용해서 풀 수도 있을 것이다.

하지만 여기 return 되는 배열을 보면 1이 두 번이나 있기 때문에 set을 사용하지 않아야 한다.

나는 여기서 새로운 list(->result)를 생성해주고 arr의 제일 첫번째 값을 미리 넣어뒀다.

이후 for문을 돌면서 현재 원소result의 마지막 원소와 같지 않을때만 삽입해주도록 해놓았다. 

def solution(arr):
    result=[] #새로운 배열 생성
    result.append(arr[0]) #미리 arr의 첫번째 값 넣어둠
    for i in range(1,len(arr)):
        if arr[i]!=result[-1]: #arr의 값이 result의 마지막 원소와 같지 않을때
            result.append(arr[i])
    return result
728x90
반응형

댓글