Programmers/코딩 기초 트레이닝

[프로그래머스] 빈 배열에 추가, 삭제하기

jjam-mo 2024. 2. 14. 17:39

 

arr의 첫 번째 요소가 3이고 flag가 true이므로 3을 (3*2)번 추가한다. 그리고 arr의 두 번째 요소가 2이고 flag가 false이므로 존재하는 요소에 마지막에서 2번 삭제한다.

 

추가하는 건 어떻게든 했는데 마지막 원소 몇 개를 제거하는게 잘 안돼서 답답했다.

 

결국 찾아보니 삭제를 하지 않고 뒤에 몇 개만 빼고 앞에서부터 그냥 answer에 넣어주는 것이었다...!!!

 

def solution(arr, flag):
    answer = []
    for i in range(len(flag)):
        if flag[i] == True:   #왜 if flag[i]:  이렇게만 해도 가능할까?
            answer.extend([arr[i]]*arr[i]*2)
        else:
            answer = answer[:-arr[i]]   #마지막을 빼지않고 처음부터 뺀 만큼만을 answer로 한다.
    return answer