728x90
# 문제
정수 배열 numbers가 매개변수로 주어집니다. numbers의 각 원소에 두배한 원소를 가진 배열을 return하도록 solution 함수를 완성해주세요.
# 답안
// 1. 입력: numbers -> 정수 배열 [1,2,3] 같은거
// 2. 출력: numbers의 각 원소에 두배한 원소를 가진 배열 [2,4,6] 같은거
// 방법1) map 사용
function solution(numbers) {
return numbers.map((number) => number * 2);
}
// 방법2) reduce 사용
function solution(numbers) {
return numbers.reduce((a, b) => [...a, b * 2], []);
}
// 방법3) for 반복문 사용
function solution(numbers) {
const answer = [];
for(let i=0; i<numbers.length;i++){
answer[i]=numbers[i]*2; // answer배열의 i번째 요소는 numbers배열의 i번째 요소에 2배한 값이다.
}
return answer;
}
// 방법4) forEach 반복문 사용
function solution(numbers) {
const answer = [];
numbers.forEach(num => answer.push(num * 2)) // numbers에 있는 각 요소에 2배 한 값을 answer 배열에 push한다.
return answer;
}
// 방법5) for...of 반복문 사용
function solution(numbers) {
const answer = [];
for(let num of numbers){
answer.push(num * 2)
}
return answer;
}
< 2번 방법 풀이 >
ex. numbers = [1, 2, 3, 4, 5]
1. reduce 함수를 사용하여 배열 numbers를 반복하는데, 초기값으로 빈 배열 []을 사용한다.
2. 첫 번째 요소 1이 현재 요소 b로 전달된다. 현재의 누적값 a는 초기값인 빈 배열 []이다.
3. 현재 요소 b를 2배하여 1 * 2는 2가 된다. 이 값 2가 현재의 누적값 a에 추가되어 [2]가 된다.
4 .두 번째 요소 2가 현재 요소 b로 전달된다. 현재의 누적값 a는 [2]이다.
5. 현재 요소 b를 2배하여 2 * 2는 4가 된다. 이 값 4가 현재의 누적값 a에 추가되어 [2, 4]가 된다.
6. 세 번째 요소 3이 현재 요소 b로 전달된다. 현재의 누적값 a는 [2, 4]이다.
7. 현재 요소 b를 2배하여 3 * 2는 6이 된다. 이 값 6이 현재의 누적값 a에 추가되어 [2, 4, 6]이 된다.
8. 최종적으로는 [2, 4, 6]이 반환되어 각 요소가 2배가 된 새로운 배열이 만들어진다.
728x90
'Coding Test > Programmers' 카테고리의 다른 글
[프로그래머스/JavaScript] 코딩 테스트 풀이 (문제 30 - 아이스 아메리카노) (0) | 2024.02.02 |
---|---|
[프로그래머스/JavaScript] 코딩 테스트 풀이 (문제 29 - 중앙값 구하기 ) (0) | 2024.02.02 |
[프로그래머스/JavaScript] 코딩 테스트 풀이 (문제 27 - 순서쌍의 개수) (0) | 2024.02.01 |
[프로그래머스/JavaScript] 코딩 테스트 풀이 (문제 26 - 문자열 뒤집기) (0) | 2024.02.01 |
[프로그래머스/JavaScript] 코딩 테스트 풀이 (문제 25 - 문자 반복 출력하기) (0) | 2024.02.01 |