sohyeon kim

[Python] 프로그래머스 : 빈 배열에 추가, 삭제하기 181860, enumerate, zip 본문

Coding Test

[Python] 프로그래머스 : 빈 배열에 추가, 삭제하기 181860, enumerate, zip

aotoyae 2024. 3. 15. 02:43
728x90

 

 

📝 문제

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

 

🫠 나의 풀이

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

    for i, b in enumerate(flag):
        if b:
            answer += [arr[i]] * (arr[i]*2)
        else:
            answer = answer[:len(answer) - arr[i]]

    return answer

 

❗️ [1, 2] * 2 = [1, 2, 1, 2]

 

🧞‍♂️ 다른 사람의 풀이

def solution(arr, flag):
    arr1 = []
    for i, j in zip(arr, flag):
        if j:
            arr1 += [i] * i * 2
        else:
            arr1 = arr1[:-i]
    return arr1
def solution(arr, flag):
    X = []
    for i, f in enumerate(flag):
        if f:
            X += [arr[i]] * (arr[i]*2)
        else:
            for _ in range(arr[i]):
                X.pop()
    return X

 

 

 

🔗 https://school.programmers.co.kr/learn/courses/30/lessons/181860?language=python3

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

 

 

728x90
반응형