출처/프로그래머스
● 문제 설명
함수 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] |
나의 풀이
function solution(x, n) {
return Array(n).fill().map((res,i) => x*(i+1));
}
Array() 생성자로 n만큼의 길이를 가지고 있는 빈 배열을 생성해서 채워주고,
map() 으로 각 자리의 index에 해당하는 값을 할당한다.
후기
function solution(x, n) {
var answer = [];
for (let i==0; i<=n; i++) {
answer.push(x*(i+1));
}
return answer;
}
처음에는 이런 식으로 코드를 짰었는데,
문제를 푸는 이유가 없는 것 같아서 다른 방법으로 접근하려고 고민을 많이 했다.
여기저기 돌아다니면서 찾다 보니까 Array.fill.map 이 은근히 많이 쓰이는 조합이란 것을 알게 되었고,
나중에 실제로 적용시켜서 활용해보는 것도 좋을 것 같았다.
추가로, 처음 보는 메소드를 활용한 풀이도 보았다.
// 다른 사람의 풀이
function solution(x, n) {
return nNumbers(x,n);
}
const nNumbers = (x, n)=>{
return Array.from({length: n},(v,index)=>(index+1)*x);
};
https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Array/from
Array.from() - JavaScript | MDN
Array.from() 메서드는 유사 배열 객체(array-like object)나 반복 가능한 객체(iterable object)를 얕게 복사해 새로운Array 객체를 만듭니다.
developer.mozilla.org