def solution(arr):
answer = []
temp=[]
for i in arr:
if i in temp:
temp[0]=i
else:
temp[0]=i
answer.append(i)
return answer
제시된 코드는 아이디어에 접근하고 있으나, 여전히 몇 가지 문제가 있습니다. 먼저, 코드의 들여쓰기에 일관성이 없으며, temp 리스트를 사용하는 방식이 최적이 아닙니다. temp 리스트를 사용하여 마지막으로 본 숫자를 추적하려는 의도는 좋지만, 이를 위해서는 리스트 대신 단일 변수를 사용하는 것이 더 적절합니다. 또한, if i in temp: 조건은 필요하지 않으며, temp[0]을 설정하는 것만으로는 연속성을 효과적으로 처리할 수 없습니다.
def solution(arr):
answer = []
for i in range(0,arr[-1]):
if arr[i] == arr[i-1]:
continue
else:
answer.append(arr[i])
print(answer)
return answer
solution([1,2,2,3,4,4,4,5,6])
위 코드는
- range(0, arr[-1])는 arr 리스트의 마지막 요소 값을 범위의 끝으로 사용합니다. 이는 리스트의 길이와 관계없이 마지막 요소의 값에 따라 반복 횟수가 결정됩니다. 이는 의도한 동작이 아닐 가능성이 높습니다. 대신 range(len(arr))을 사용하여 리스트의 모든 요소를 순회해야 합니다.
- arr[i] == arr[i-1] 비교에서 i=0일 때 arr[i-1]은 리스트의 마지막 요소를 참조하므로, 이는 리스트의 첫 번째와 마지막 요소를 비교하게 됩니다. 이는 일반적으로 원하는 비교가 아닐 것입니다
def solution(arr):
answer = []
for i in range(len(arr)):
if i==0 or arr[i] != arr[i-1]:
answer.append(arr[i])
else:
continue
print(answer)
return answer