코딩테스트 | (JavaScript) 프로그래머스 : x만큼 간격이 있는 n개의 숫자

trevor1107·2021년 7월 30일
0

✅문제

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

❕ 제한사항

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

🎹📢입출력 예제

✍풀어보기

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);

    // 또 다른 방법
    return [...Array(n).keys()].map(v => (v + 1) * x); // 전개 연산자
}	

한줄로 처리하는게 깔끔하고 편해보이지만.. 성능적으로 for문이 더 앞선다. 위에서 첫번째 풀이를 설명하자면
배열 생성 -> 배열에 값을 채운다 -> 반복자를 통한 계산 및 대입
map은 key와 value로 이루어져있고, 배열의 key는 index를 뜻한다.

다양한 방법으로 푸는 것은 도전적이며 창의적이긴 하지만, 내가 풀었던 방법 처럼 누구나 한번에 보고 이해하기 쉬운 일반적인 방법으로 코드를 작성하는 것이 유지보수와 협업에 더 낫겠다는 생각을 하게 되는 문제였다.



참고 자료 및 사이트 (감사합니다)

profile
프론트엔드 개발자

0개의 댓글