처음 코드

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>

🚨 현재 코드 문제점

  1. if set(arr) not in 2:
  2. elif i == 2: 에서 first_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]