알고리즘_ x만큼 간격이 있는 n개의 숫자
x만큼 간격이 있는 n개의 숫자
1. 문제 설명
함수 solution은 정수 x와 자연수 n을 입력 받아, x부터 시작해 x씩 증가하는 숫자를 n개 지니는 리스트를 리턴해야 합니다. 다음 제한 조건을 보고, 조건을 만족하는 함수, solution을 완성해주세요.
2. 제한 조건
x는 -10000000 이상, 10000000 이하인 정수입니다.
n은 1000 이하인 자연수입니다.
3. 입출력 예
x | n | answer |
---|---|---|
2 | 5 | [2,4,6,8,10] |
4 | 3 | [4,8,12] |
-4 | 2 | [-4, -8] |
4.나의 문제 풀이
1. x씩 증가하는 숫자를 n개 지니는 배열을 리턴
function solution(x, n) {
var answer = [];
for (let i = 1; i <= n; i++){
answer.push(x*i)
}
return answer;
}
- for문을 이용해 x부터 시작한 숫자를 담아야 하기 때문에 1부터 시작해서, n까지 반복하게 설정하였다.
- x만큼 증가한 숫자를 담아야 했기 때문에
x*i
의 결과 값을 push()를 이용해 배열에 추가해 주었다.
5. 다른 사람의 문제 풀이
function solution(x, n) {
return Array(n).fill(x).map((v, i) => (i + 1) * v)
}
Array(),fill()를 사용하여 문제를 풀었다.
- Array()
Array() 새로운 array 객체를 생성할때 사용하는 생성자이다.
// 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()
fill() 메서드는 배열의 시작 인덱스부터 끝 인덱스의 이전까지 정적인 값 하나로 채운다.
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씩 증가하는 숫자로 변경해 주었다.
- 참고링크
Array()생성자
fill()
Author And Source
이 문제에 관하여(알고리즘_ x만큼 간격이 있는 n개의 숫자), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@coco1606/알고리즘-x만큼-간격이-있는-n개의-숫자저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)