<TIL - 0016> 프로그래머스 코딩테스트 : 배열 두 배 만들기

개발일지·2023년 4월 4일
0

til

목록 보기
16/43


배열 두배 만들기

문제 설명

정수 배열 numbers가 매개변수로 주어집니다. numbers의 각 원소에 두배한 원소를 가진 배열을 return하도록 solution 함수를 완성해주세요.


제한사항

-10,000 ≤ numbers의 원소 ≤ 10,000
1 ≤ numbers의 길이 ≤ 1,000


입출력 예

[numbers][result]
[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 = numbers * 2
    return answer
# 테스트1 실행 결과 [1,2,3,4,5,1,2,3,4,5]
# 테스트2 실행 결과 [1,2,100,-99,1,2,3,1,2,100,-99,1,2,3]

무지성 두배 했더니 진짜 두배가 되어버렸다.
그렇다면 안에 있는 요소들을 하나하나 두배로 만들어 넣는다.

def solution(numbers):
    answer = []
    for i in numbers:
        answer.append(i*2)
    return answer
# 테스트1 실행 결과 [2,4,6,8,10]
# 테스트2 실행 결과 [2,4,200,-198,2,4,6]

알아야 했던것.

for 변수 in 리스트:
	실행할문장
    
.append()

다른 풀이들

def solution(numbers):
    return [num*2 for num in numbers]
# 리스트 컴프리헨션
# []안에 for(반복), if(조건)를 통해 조건에 만족하는 것만 리스트로 생성함.
# 사용하는 이유 : 직관적, 숏코딩, 속도빠름

def solution(numbers):
    return list(map(lambda x: x * 2, numbers))
# map(function, iterable)
# 첫번째 매개변수 = 함수
# 두번째 매개변수 = 반복가능한 자료형 (리스트, 튜플 등)
# lambda 매개변수 : 동작
profile
아닐지

0개의 댓글