728x90
문제 설명
함수 solution은 정수 x와 자연수 n을 입력 받아, x부터 시작해 x씩 증가하는 숫자를 n개 지니는 리스트를 리턴해야 합니다. 다음 제한 조건을 보고, 조건을 만족하는 함수, solution을 완성해주세요.
제한 조건
- x는 -10000000 이상, 10000000 이하인 정수입니다.
- n은 1000 이하인 자연수입니다.
입출력 예시
x를 초항, 등차로 하는 등차수열이 n개 만큼 나온다.
나의 풀이
function solution(x, n) {
var answer = [];
var a;
for(let i=1; i<=n; i++){
a = x*i;
answer.push(a)
}
return answer;
}
처음 문제를 읽고 머리에 떠오르는대로 코딩했고 결과는 성공적이었으나 코드가 만족스럽지 않다.
모범 답안
function solution(x, n) {
return Array(n).fill(x).map((v, i) => (i + 1) * v)
}
왜 map을 알아도 못쓰지?
for 쓰기전에 map을 먼저 쓰는 연습을 해야겠다.
Array(n)은 length가 n인 배열을 만든다. (data를 입력하지 않으면 요소로 null을 지닌다.)
그 밖에 답안들
Using spread operator (...) and keys method
[ ...Array(N).keys() ].map( i => i+1);
Array.from
Array.from(Array(N), (_, i) => i+1)
Array.from and { length: N } hack
Array.from({ length: N }, (_, i) => i+1)
Fill( )
arr.fill('A',1,3) 은 A를 arr라는 배열에 인덱스 1부터 3 전까지 채워 넣는다. 마지막 인덱스는 포함하지 않는다.
'알고리즘' 카테고리의 다른 글
15. 내적 (JavaScript) (0) | 2022.01.16 |
---|---|
12. 부족한 금액 계산하기 (JavaScript) (0) | 2022.01.16 |
10. 행렬의 덧셈 (JavaScript) (0) | 2022.01.15 |
14. 나누어 떨어지는 숫자 배열 (JavaScript) (0) | 2022.01.15 |
9. 핸드폰 번호 가리기 (JavaScript) (0) | 2022.01.15 |
댓글