챌린저스 매일 인증 (6) 같은 숫자는 싫어

새벽하늘·2021년 6월 9일
0

프로그래머스

목록 보기
10/11

❓문제

🤔 과정

순서를 유지하는 것이 관건이라 생각

: 중복 제거라는 말에 바로 set을 사용할까 싶었다. 하지만 set은 자동으로 정렬이 되기 때문에 다른 방법을 사용하는 것이 맞다고 생각했다.

💡 생각한 다른 방법

: 역시 for문을 돌면서 앞, 뒤 원소 비교후 같지 않다면 추가하는 방법 밖에 없다고 생각했다.

🙋🏻‍♀️ 내 코드

def solution(arr):
    answer = []
    # 순서를 유지하는 것이 관건. set은 자동 정렬이 되어서 안될 듯
    for i in range(len(arr)):
        a = arr[i]
        if i+1 < len(arr):
            next_a = arr[i+1]
        else:
            answer.append(a)

        if a != next_a:
            answer.append(a)

    return answer

✨ 감명받은 다른 사람 코드

def no_continuous(s):
    a = []
    for i in s:
        if a[-1:] == [i]: continue
        a.append(i)
    return a

그로인해 알게 된 것

  • 파이썬 슬라이싱에 대한 복습
    복습에 참고한 사이트

  • 빈배열에 [-1:]을 써도 죽지 않는 파이썬

  • i에 []를 붙인 이유
    : a[-1:] 은 맨 마지막 원소부터 끝까지 잘라서 list로 만들기 때문에 int형인 i 역시 list형으로 만들어 비교해 주어야 에러가 안나기 때문이다.

profile
만들고 싶은 거 다 만들 수 있는 그날까지

0개의 댓글