문제

https://programmers.co.kr/learn/courses/30/lessons/12906

풀이

def solution(arr):
    a = []
    for i in arr :
        if len(a) < 1 or a[-1] != i :
            a.append(i)
            
    return a

더 나은 풀이

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

슬라이싱을 이용하면 리스트가 비어있어도 오류를 출력하지 않고 지나간다.
또 하나 배우네.

def no_continuous(s):
    return [s[i] for i in range(len(s)) if [s[i] != s[i+1:i+2]]]

슬라이싱은 인덱스를 넘어가도 오류가 안나는 사례 하나 더.

슬라이싱을 응용한 인덱스 초과는 코드가 깔끔해지긴 하지만,
함부러 사용하기엔 위험하지 않을까 하는 의구심이 든다.

댓글남기기