코딩 테스트/프로그래머스

[Python] 프로그래머스 lv.0 배열 조각하기

위시리 2024. 10. 29. 20:34



문제 분석

 

  • 정수 arr, query
  • query를 순회하면서 
  • 짝수 인덱스 : arr에서 query[ i ] 번 인덱스를 제외하고 배열의 query[ i ]번 인덱스 뒷부분을 잘라 버림
  • 홀수 인덱스 : arr에서 query[ i ] 번 인덱스를 제외하고 배열의 query[ i ]번 인덱스 앞부분을 잘라 버림

 

 

코드 설계

  • 어떻게 배열 값을 버리는가 : del, remove( ) ..

 

정답 코드

del 이용

def solution(arr, query):
    for i in range(len(query)) :
        if i % 2 == 0 : # 짝수 인덱스
            del arr[query[i]+1:]
        else : # 홀수 인덱스
            del arr[:query[i]]
    return arr

 

다른 사람 코드 

def sol(arr, q) :
    for k, q in enumerate(q) :
        if k % 2 == 0 :
            arr = arr[:q+1]
        else :
            arr = arr[q:]
    return arr

 

** enumerate( ) : 인자로 넘어온 목록을 기준으로 인덱스와 우너소를 차례대로 접근하게 해주는 반복자(iterator) 객체를 반환해주는 함수

def sol(q) :
    for k, q in enumerate(q) :
        print(k,q)

q = [4, 1, 2]
print(sol(q))

# result : 
# 0 4
# 1 1
# 2 2