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

[프로그래머스][Python] 12906 - 같은 숫자는 싫어

solitude12 2024. 7. 3. 15:54

문제 링크

 

프로그래머스

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

programmers.co.kr


문제 풀이 과정

def solution(arr):
    answer = []
    check_number = arr[0]
    for i in range(len(arr)):

        # 이전 숫자와 중복이라면 패스
        # 이전 숫자와 같거나, 처음 값이 아니라면
        if (arr[i] == check_number) and (i != 0):
            continue

        # 반복문을 순회하며 처음보는 숫자는 배열에 저장.
        answer.append(arr[i])

        # 중복이 아니라면 추가하고 체크하는 숫자를 변경
        check_number = arr[i]

    return answer
# 모범답안
def no_continuous(s):
    a = []
    for i in s:
        if a[-1:] == [i]: continue
        a.append(i)
    return a

간단한 문제지만 나는 풀 때 처음 값을 미리 저장해두고 그 값을 변경하는 식으로 작성했지만, 모범답안을 보니 가장 최근에 저장된 값을 슬라이싱을 통해 가져오니 설사 값이 없더라도 indexError가 아닌 빈 리스트를 반환하는 걸 활용해서 간략하게 잘 처리한 것 같다. 알고리즘 문제를 풀 때 인덱싱과 슬라이싱을 좀 더 적극적으로 활용하면서 문제를 풀면 좋겠다 싶었다.