코딩테스트/프로그래머스

[프로그래머스] [Level 1] 같은 숫자는 싫어

박소민 2022. 3. 5. 17:51
문제) 같은 숫자는 싫어
 

코딩테스트 연습 - 같은 숫자는 싫어

배열 arr가 주어집니다. 배열 arr의 각 원소는 숫자 0부터 9까지로 이루어져 있습니다. 이때, 배열 arr에서 연속적으로 나타나는 숫자는 하나만 남기고 전부 제거하려고 합니다. 단, 제거된 후 남은

programmers.co.kr

 

  • 내 풀이

- answer에 값을 넣기 전에 비어있으면 비교가 불가능 하므로 answer[0]에 값을 넣어두고 이후에 지움

def solution(arr):
    answer=[10]
    for i in arr:
        if i==answer[-1]:
            continue
        answer.append(i)
    del answer[0]
    
    return answer
print(solution([1,1,1,3,3,0,1,1]))
#결과
[1,3,0,1]

 

  • 다른 사람 풀이

- list[-1:] : 비어 있는 리스트에서도 사용 가능 

→ 슬라이스를 사용하면 값이 아닌 리스트의 일부를 잘라서 새로운 리스트를 생성

→ 슬라이싱은 인덱스 값이 범위를 초과해도 오류X

: 비교 대상이 리스트가 되어야 함 [i]=answer[-1:]

 

def solution(arr):
    answer=[]
    for i in arr:
        if [i]==answer[-1:]:
            continue
        answer.append(i)
    
    return answer