함수 solution은 정수 x와 자연수 n을 입력 받아, x부터 시작해 x씩 증가하는 숫자를 n개 지니는 리스트를 리턴해야 합니다. 다음 제한 조건을 보고, 조건을 만족하는 함수, solution을 완성해주세요.
x는 -10000000 이상, 10000000 이하인 정수입니다.
n은 1000 이하인 자연수입니다.
x | n | answer |
---|---|---|
2 | 5 | [2,4,6,8,10] |
4 | 3 | [4,8,12] |
-4 | 2 | [-4, -8] |
1. x씩 증가하는 숫자를 n개 지니는 배열을 리턴
function solution(x, n) {
var answer = [];
for (let i = 1; i <= n; i++){
answer.push(x*i)
}
return answer;
}
x*i
의 결과 값을 push()를 이용해 배열에 추가해 주었다.function solution(x, n) {
return Array(n).fill(x).map((v, i) => (i + 1) * v)
}
Array(),fill()를 사용하여 문제를 풀었다.
// Array(숫자)
let arr = new Array(2)
console.log(arr) // [ <2 empty items> ]
arr[1]='1'
console.log(arr) // [ <1 empty items> ,'1']
// Array(...'문자')
new Array('good','luck') // [ 'good', 'luck' ]
fill('채울값',star,end)
➀[1,2,3,4,5].fill('ㅎ',2,4) // [ 1, 2, 'ㅎ', 'ㅎ', 5]
➁[1,2,3,4,5].fill('ㅎ',2) // [ 1, 2, 'ㅎ', 'ㅎ', 'ㅎ', 'ㅎ' ]
➂[1,2,3,4,5].fill('ㅎ') // [ 'ㅎ', 'ㅎ', 'ㅎ', 'ㅎ', 'ㅎ', 'ㅎ' ]
➀ fill함수에 채울값과 star,end 모두 입력하면,index2부터 index4 앞
까지 ㅎ
로 채워진다.
➁ end를 제외하고 입력하면 입력된 star부터 끝까지 ㅎ
로 채워진다.
➂ 채울값만 입력하면 그 값으로 배열 끝까지 ㅎ
로 채워진다.
위 배운 내용을 참고 하면
function solution(x, n) {
return ➀Array(n).➁fill(x).➂map((v, i) => (i + 1) * v)
}
➀ Array(n)는 n 만큼 빈슬롯을 가진 상태.
➁ fill(x)로 Array(n)을 전부 x로 채웠다.
➂ map()을 이용하여 x씩 증가하는 숫자로 변경해 주었다.