티스토리 뷰

 

문제 설명
함수 solution은 정수 x와 자연수 n을 입력 받아, x부터 시작해 x씩 증가하는 숫자를 n개 지니는 리스트를 리턴해야 합니다. 다음 제한 조건을 보고, 조건을 만족하는 함수, solution을 완성해주세요.

제한 조건
x는 -10000000 이상, 10000000 이하인 정수입니다.
n은 1000 이하인 자연수입니다.

 

입출력 예

x n result
2 5 [2,4,6,8,10]
-4 2 [-4, -8]
4 3 [4,8,12]

 

 

내풀이


  - 빈 배열을 만들어서 값을 더해주고 넣어준뒤 그 배열이 n-1만큼 만들어지면 return해라입니다.

function solution(x, n) {
    var answer = [];
    let sumNum = 0
    while(answer.length<n){
        sumNum += x;
        answer.push(sumNum)
    }
    return answer;
}

 

 

 

배워야 할점 


1. n만큼의 배열을 만들고 그 안을 x로 다 채워준뒤 map으로 요소를 하나씩 꺼내고 인덱스 +1 을 해주고 x로 곱해주면 됩니다.

function solution(x, n) {
    return Array(n).fill(x).map((v, i) => (i + 1) * v)
}

→ fill()이라는 메서드를 생각하지 못하였고 map의 2번째 인자는 해당 index라는걸 기억하지 못했다.

     배열에 똑같이 x로 다 넣으면 똑같은 x가 나오는 발상도 신기했다.

 

 

 

2. 배열에 값을 추가 시켜주는데 반복해서 x의 값 * i값 하고 i가 n의 길이만큼만 돌고 끝내는 방식입니다.

function solution(x, n) {
    var answer = [];
    for (let i = 1; i <= n; i++) {
        answer.push(x*i)
    }
    return answer;
}

가장 근본적인 방식을 생각을 못한게 음.. 좀 아쉬웠던것 같습니다.

for문을 쓰는게 무한루프쓰는것보다 메모리적으로나 훨씬 이득일텐데 다짜고짜 while문이 생각난것이 아쉽습니다.

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2024/09   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
글 보관함