문제 링크

정답 :

def solution(arr, flag):
    answer = []
    arrFlag = list(zip(arr, flag))

    for key, value in arrFlag:
        if value == True:
            for _ in range(key):
                answer.append(key)
                answer.append(key)
        else:
            for _ in range(key):
                answer.pop()
    
    return answer

개선 :

def solution(arr, flag):
    answer = []

    for i, j in zip(arr, flag):
        if j == True:
            answer += [i] * (i * 2)
        else:
            answer = answer[:-i]
    
    return answer