def solution(arr):
answer = []
for idx, i in enumerate(arr):
if set(arr) not in 2:
answer.append(-1)
elif i == 2:
first_2 = idx
return answer
<aside> 💡
음.. 도저히 모르겠다.. 처음 2의 인덱스를 찾아도, 마지막 2 의 인덱스를 찾아야 하는데,, 어떻게 해야할까.. 일단 set으로 중복을 제거하여 안에 2 가 있는지 검사하려 했으나,, 이 또한 오류가 발생한다고 한다..
</aside>
if set(arr) not in 2:
set(arr)
는 집합이고 2
는 정수라서 in
비교가 불가능합니다.if 2 not in arr:
라고 해야 돼요.elif i == 2:
에서 first_2
를 찾고 있는데,
last_2
도 필요합니다. (가장 마지막 2
의 위치)2
가 없으면 [-1]
반환첫 번째 2
의 위치와 마지막 2
의 위치를 찾고 그 사이 부분 배열을 잘라서 반환def solution(arr):
if 2 not in arr:
return [-1]
first_2 = arr.index(2) # 첫 번째 2의 위치
last_2 = len(arr) - 1 - arr[::-1].index(2) # 마지막 2의 위치
return arr[first_2:last_2+1]
print(solution([1, 2, 1, 4, 5, 2, 9])) # [2, 1, 4, 5, 2]
print(solution([1, 2, 1])) # [2]
print(solution([1, 1, 1])) # [-1]
print(solution([1, 2, 1, 2, 1, 10, 2, 1])) # [2, 1, 2, 1, 10, 2]