March 10, 2022
함수 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()
을 잘 활용하도록 해야겠다.