728x90
# 1. a[-1:]
def solution(arr):
a = []
for i in arr:
if a[-1:] != [i]:
a.append(i)
return a
a[-1:]은 a[-1]과 같은 효과이면서, 오류는 나지 않는 방법!! (a가 []라도 오류가 나지 않는다)
대신 리스트에 들어간 상태로 반환되기 때문에([1], [2] 이런 꼴) i를 [i]로 써야한다.
#2. a[i-1:i]
def no_continuous(s):
return [ v for i,v in enumerate(s) if s[i-1:i]!=s[i] ]
a[i-1:i]는 a[i-1]과 같은 효과이면서, 오류는 나지 않는 방법이다!
a[i-1:i]는 리스트에 들어간 상태로 반환되지 않는다.(왜인지는 모름..) 그래서 s[i]로 그냥 써도 된다.
enumerate로 인덱스랑 값을 받아서 처리해준다.
#3. a[i+1:i+2]
def no_continuous(s):
return [s[i] for i in range(len(s)) if [s[i]] != s[i+1:i+2]]
a[i+1:i+2]는 a[i+1]과 같은 효과이면서, 오류가 나지 않는다.
얘도 리스트에 들어간 상태로 반환되기 때문에 [ s[i] ] 와 같이 써야한다. (s[i]는 int이기 때문)
#4. if (len != 0)
def no_continuous(s):
result = []
for c in s:
if (len(result) == 0) or (result[-1] != c):
result.append(c)
return result
인덱스 -1이 없는 경우(빈리스트인 경우)를 피하기 위해 len == 0인 경우를 제외하고 생각하는 방법이다.
728x90
'알고리즘 > programmers[1]' 카테고리의 다른 글
[프로그래머스] 두 정수 사이의 합: python3 (0) | 2022.01.23 |
---|---|
[프로그래머스] 나누어 떨어지는 숫자 배열: python3 (0) | 2022.01.23 |
[프로그래머스] 같은 숫자는 싫어: python3 (0) | 2022.01.23 |
[프로그래머스] 가운데 글자 가져오기: python (0) | 2022.01.23 |
[프로그래머스] 콜라츠 추측: python3 (0) | 2022.01.23 |