우당탕탕 개발일지

[스택/큐] 프로그래머스 level 1 같은 숫자는 싫어 (Python 파이썬) 본문

알고리즘

[스택/큐] 프로그래머스 level 1 같은 숫자는 싫어 (Python 파이썬)

민아당긴아 2024. 3. 6. 16:01

💡문제 링크

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

💡문제 분석 요약

배열 arr은 0과 9 사이의 숫자로 이루어져 있음배열 arr에서 숫자가 연속적으로 나타나는 경우, 하나만 남기고 모두 제거

💡알고리즘 설계

입력값: arr

출력값: 중복값이 없는 배열1.리턴할 배열 answer을 만든다.2. arr의 원소들에 대해 반복문 돌리기3. arr의 원소가 answer의 맨 마지막 원소와 같지 않은 경우에만 answer에 arr원소 넣기 

 

 

💡코드

def solution(arr):
    answer = [arr[0]]
    for a in arr[1:]:
        if answer[-1] != a:
            answer.append(a)
    return answer

 

💡 오답 풀이

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

처음에 이렇게 했는데 인덱스 에러가 떴다( IndexError: list index out of range ).

answer가 빈 리스트인데 answer[-1]를 해서 뜬 에러였다..

💡 다른 풀이

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

answer[-1] 대신에 answer[-1:]을 해주면 No Problem!

 

💡 느낀점 or 기억할정보

인덱스 [-1:]로 넣는 거 정말 천재적인 생각이다..!