문제 설명
함수 solution은 정수 x와 자연수 n을 입력 받아, x부터 시작해 x씩 증가하는 숫자를 n개 지니는 리스트를 리턴해야 합니다. 다음 제한 조건을 보고, 조건을 만족하는 함수, solution을 완성해주세요.
제한 조건
- x는 -10000000 이상, 10000000 이하인 정수입니다.
입출력 예
x | n | answer |
2 | 5 | [ 2, 4, 6, 8, 10 ] |
4 | 3 | [ 4, 8, 12 ] |
- 4 | 2 | [ - 4, - 8 ] |
< 나의 풀이 >
function solution(x, n) {
let x1 = x;
let arr = [];
for( let i = 0 ; i < n ; i++ ){
arr.push(x);
x += x1;
}
return arr;
}
처음 이 문제를 봤을 때 나는 for 문만 떠올라서 for 문으로 코드를 작성했다 ༼ಢ_ಢ༽
< 다른 사람의 풀이 >
function solution(x, n) {
return Array(n).fill(x).map((v, i) => (i + 1) * v)
}
길이가 n인 배열을 생성하고 x로 배열을 채운다.
각 요소 v와 해당 인덱스 i에 대한 새로운 값을 계산해서 배열을 반환한다.
( 코드에서 v는 x이다. )
ex ) x = 2, n = 5
- [ 2, 2, 2, 2, 2 ]
- 현재 v는 2이다.
- i = 0, ( i + 1 ) * v = 2
- i = 1, ( i + 1 ) * v = 4
- i = 2, ( i + 1 ) * v = 6
- i = 3, ( i + 1 ) * v = 8
- i = 4, ( i + 1 ) * v = 10
- [ 2, 4, 6, 8, 10 ]
[ 추가 학습 ]
const numbers = [1, 2, 3, 4];
const squared = numbers.map(num => num * num);
console.log(squared); // [1, 4, 9, 16]
const numbers = [10, 20, 30];
const indexed = numbers.map((num, index) => num * index);
console.log(indexed); // [0, 20, 60]
'알고리즘 > 프로그래머스' 카테고리의 다른 글
Lv.1 이상한 문자 만들기 (0) | 2024.07.21 |
---|---|
Lv.1 최대공약수와 최소공배수 (2) | 2024.07.14 |
Lv.1 크기가 작은 부분 문자열 (0) | 2024.07.10 |
Lv.1 가장 가까운 같은 글자 (0) | 2024.07.07 |
Lv.1 정수 내림차순으로 배치하기 (0) | 2024.07.02 |