코딩_Python(Level.0)

[Level.0] 빈 배열에 추가, 삭제하기

Hong's_Computer 2026. 3. 17. 13:09
반응형

문제 설명: 아무 원소도 들어있지 않은 빈 배열 X가 있습니다. 길이가 같은 정수 배열 arr과 boolean 배열 flag가 매개변수로 주어질 때, flag를 차례대로 순회하며 flag[i]가 true라면 X의 뒤에 arr[i]를 arr[i] × 2 번 추가하고, flag[i]가 false라면 X에서 마지막 arr[i]개의 원소를 제거한 뒤 X를 return 하는 solution 함수를 작성해 주세요.

제한사항

  • 1 ≤ arr의 길이 = flag의 길이 ≤ 100
  • arr의 모든 원소는 1 이상 9 이하의 정수입니다.
  • 현재 X의 길이보다 더 많은 원소를 빼는 입력은 주어지지 않습니다.

문제 해결

def solution(arr, flag):
    X = []
    for ar, fla, in zip(arr, flag):
        if fla:
            X += [ar] * (ar*2)
        else:
            X = X[:-ar]
    return X

 

주석: 리스트 결합 연산(+)과 반복 연산(*)을 사용해 특정 원소를 지정된 횟수만큼 한꺼번에 추가하며, 삭제 시에는 음수 인덱스 슬라이싱을 활용해 배열의 끝부터 지정된 개수만큼 효율적으로 제거한다.

반응형