본문 바로가기
알고리즘/프로그래머스

[프로그래머스/파이썬] 레벨 0 배열 두배 만들기

by Renechoi 2022. 10. 12.

[프로그래머스/파이썬] 레벨 0 배열 두배 만들기

 

📌 문제 

정수 배열 
numbers
가 매개변수로 주어집니다. 

numbers
의 각 원소에 두배한 원소를 가진 배열을 return하도록 solution 함수를 완성해주세요.

 

⚔ 제한 사항

-10,000 ≤ numbers의 원소 ≤ 10,000

1 ≤ numbers의 길이 ≤ 1,000

 

 

📣 입출력 예

 

[1, 2, 3, 4, 5] [2, 4, 6, 8, 10]
[1, 2, 100, -99, 1, 2, 3] [2, 4, 200, -198, 2, 4, 6]

 

 

🔑 입출력 예 설명 

 

입출력 예 #1
[1, 2, 3, 4, 5]의 각 원소에 두배를 한 배열 [2, 4, 6, 8, 10]을 return합니다.

입출력 예 #2
[1, 2, 100, -99, 1, 2, 3]의 각 원소에 두배를 한 배열 [2, 4, 200, -198, 2, 4, 6]을 return합니다.

 

 

 


 

💡 나의 풀이

 

 

def solution(numbers):    
    answer = [i*2 for i in numbers]

    
    return answer

 

 

 


 

👀 다른 사람의 풀이 

def solution(numbers):
    answer = []

    for i in numbers:
        answer.append(i*2)
    return answer
    
    
    /////
    
    
    
    
def solution(numbers):
    return list(map(lambda x: 2*x, numbers))

 

 

 

 

 

 


 

✨ 코멘트 

 

원래 for문을 쓰는 기본 방식은 list를 새로 만들어서 append 해주는 식으로 짜야하는 게 맞지만 

한줄로 가능하다. 

 

for문을 아예 안쓰는 방법으로 lambda 함수를 쓰는 것.

 

 

map을 쓰면 함수에 바로 입력값을 받아서 출력할 수 있다. 

 

def calc(x):
    return x*2

list(map(calc, range(1,6)))

 

람다는 함수식이기 때문에 바로 여기에 집어넣는 게 가능하다. 

 

 

 

 

 

 


반응형