[문제풀기] 프로그래머스 배열 두배 만들기

yeols·2023년 9월 20일
0

Algorithm

목록 보기
7/16
post-thumbnail

프로그래머스 배열 두배 만들기

문제 설명

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


입출력 예

numbersresult
[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 합니다.

나의 문제 풀이

function solution(numbers) {
    return numbers.map(item => item * 2);
}

문제 풀이 해설

map 메서드를 호출한 numbers요소를 *2를 하고
map은 반환값이 새로 구성한 배열이므로 바로 return 하였다.


다른 사람의 문제 풀이

function solution(numbers) {
    return numbers.reduce((a, b) => [...a, b * 2], []);
}

위의 해결 방법은 reduce 메서드를 사용 하였으며
reduce의 2번째 인자는 초기값으로 [] 지정하고 콜백 함수에서 스프레드 문법으로
초기값의 배열에 담긴 값들은 배열에 담고 numbers의 현재 index에 있는 값 2를 곱하여 배열에 담는 것을
반복하고 return 한다.


문제를 풀고 후기

위 문제를 푸는데 많은 방법이 있겠지만 map으로 문제를 해결 하는 방법이 가장 가독성이 좋아보인다.
하지만 항상 다른 방법도 머리속에서 생각하는 습관을 길르자.

profile
흠..

0개의 댓글