배열 arr가 주어집니다. 배열 arr의 각 원소는 숫자 0부터 9까지로 이루어져 있습니다. 이때, 배열 arr에서 연속적으로 나타나는 숫자는 하나만 남기고 전부 제거하려고 합니다. 단, 제거된 후 남은 수들을 반환할 때는 배열 arr의 원소들의 순서를 유지해야 합니다. 예를 들면,
배열 arr에서 연속적으로 나타나는 숫자는 제거하고 남은 수들을 return 하는 solution 함수를 완성해 주세요.
arr | answer |
---|---|
[1,1,3,3,0,1,1] | [1,3,0,1] |
[4,4,4,3,3] | [4,3] |
def solution(arr):
answer = []
for i in range(len(arr)):
if not answer:
answer.append(arr[i])
elif arr[i-1] != arr[i]:
answer.append(arr[i])
return answer
arr의 첫 값인 경우 answer에 넣고 arr전의 값과 비교해서 같지 않으면 값을 넣는 방식으로 짰다.
def no_continuous(s):
a = []
for i in s:
if a[-1:] == [i]: continue
a.append(i)
return a
a[-1:]는 빈 리스트에 써도 괜찮다.
def no_continuous(s):
a=[ v for i,v in enumerate(s) if s[i-1]!=s[i]]
return a
enumerate로 i, v 값을 받아서 v만 저장한다.