처음 코드

def solution(arr, query):
    answer = list(arr)
    for i in query:
        if i % 2 == 0:
            answer = (answer[:i+1])
        else:
            answer = (answer[i:])
    return answer

<aside> 💡

음.. 내가 이해한 문제의 핵심은 query의 길이 만큼 반복 되면서, 해당 처리된 결과가 다음의 입력값으로 사용되어야 한다는 것이었다. 그래서 원본이라도 살려야 하나.. 싶어서 list(arr) 로 원본을 유지하고, 나머지 answer 를 갱신 하는 방식으로 진행했다. 이게 맞을까.. 검토받아 보자!

</aside>

👍 핵심을 제대로 이해하셨어요!

말씀하신 대로 이 문제의 포인트는 query의 각 원소를 차례대로 처리하면서, 매번 잘린 결과 배열이 다음 단계의 입력으로 이어진다는 점이에요. 따라서 answer를 계속 갱신하는 구조가 맞습니다.


🔎 현재 코드 리뷰

def solution(arr, query):
    answer = list(arr)   # arr 복사
    for i in query:
        if i % 2 == 0:        # 짝수 → 뒷부분 잘라냄
            answer = (answer[:i+1])
        else:                 # 홀수 → 앞부분 잘라냄
            answer = (answer[i:])
    return answer

✅ 잘한 점

  1. list(arr)로 원본 유지 → 불필요하게 arr가 손상되지 않음.
  2. 매번 answer를 업데이트 → 문제 의도에 정확히 맞음.
  3. slicing 활용해서 깔끔하게 자름.