본문 바로가기

코딩 테스트

[프로그래머스 고득점 Kit] 스택_ 같은 숫자는 싫어

주어진 arr 배열의 값들이 연속적인지 확인하면 되는 문제였다.

진행 순서에 따라 새로운 값을 저장하는 cur 변수와 arr 리스트의 새로운 값을 비교하는 식으로 간단히 구현 가능하다.

 

def solution(arr):
    answer = []
    cur = -1
    for i, val in enumerate(arr):
        if cur != val:
            answer.append(val)
        cur = val

    return answer

 

풀고 나서 다른 분들의 풀이를 보던 중 흥미로운 코드가 있어 적어본다.

def no_continuous(s):
    a = []
    for i in s:
        if a[-1:] == [i]: continue  # 배열의 마지막값과 i 값을 비교하는 것
        a.append(i)
    return a

- a 가 비어있는 배열인 경우 -1 index를 호출하면 인덱스 에러 발생

- a[-1:]는 a 배열의 마지막값을 리스트로 출력한 것이므로 i값도 리스트 타입으로 만들어서 비교하는 방법