함수 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) {
var answer = []
for (let i = 0; i < n; i++) {
if (i === 0) {
answer.push(0 + x)
continue
}
answer.push(answer[i - 1] + x)
}
return answer
}
풀면서도 복잡하고, 정말 비효율적으로 풀었다는 생각이 들었다. 단순히 정답을 얻기 위한 풀이를 했고, 어떻게 하면 좀 더 명확하고 간결하게 풀지를 고민하지 못했던 것 같다. 심지어 아래같이 곱셈을 활용하면 훨씬 쉽게 풀 수 있었는데, 좀 더 고민하고 생각해서 풀어야 겠다.
function solution(x, n) {
var answer = []
for (let i = 1; i <= n; i++) {
answer.push(x * i)
}
return answer
}
function solution(x, n) {
return Array(n)
.fill(x)
.map((v, i) => (i + 1) * v)
}
배열을 n 크기로 만들어 놓고 모두 x로 채운 후에 인덱스 위치에 따라 x를 곱해주는 방식이었는데, 매우 간결하고 이해하기 쉽게 풀었다는 생각이 들었다. map()
을 잘 활용하도록 해야겠다.