ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 항해 99 - x만큼 간격이 있는 n개의 숫자
    알고리즘 공부/JavaScript 문제 2023. 4. 16. 15:14

    [ 문제 ]

    함수 solution은 정수 x와 자연수 n을 입력 받아, x부터 시작해 x씩 증가하는 숫자를 n개 지니는 리스트를 리턴해야 합니다. 

    다음 제한 조건을 보고, 조건을 만족하는 함수, solution을 완성해주세요.

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

     

    [ Input / Output 예시 ]

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

     


    [ 풀이 ]

    풀이 (1)

    (내 풀이)

    인덱스의 시작을 0이 아닌 1이라고 생각한다면 배열의 길이가 n이고 각 원소의 값이 x * (인덱스)인 배열을 만드는 것이다.

    빈 배열을 만들고 그 안에 원소를 채운다.

     

    풀이 (2)

    (프로그래머스 풀이)

    역시 배열의 메소드는 짜릿하다! fill 이라는 메소드를 활용하는 방법이 있었다!

     Array().fill() -> 원하는 길이의 비어있는 배열을 만들어서 모든 자리에 원하는 값을 넣어준다

    넣어준 후 map 을 활용하여 각 인덱스+1 만큼 곱해준다.

     

    [ 코드 ]

    // 풀이(1) 
    // 1부터 n까지 x와 곱하여 push한다.
    const solution1 = function (x, n) {
        let result = [];
    
        for (let i=1; i<=n ; i++) {
            result.push(x*i);
        }
        return result;
    }
    
    console.log(solution1(-4, 3))   // [-4, -8, -12]
    
    
    // 풀이 (2)
    // Array().fill() 활용 => Array의 원소 수만큼 같은 원소로 채운다.
    // 인덱스 + 1 만큼 원소에 곱해준다.
    const solution2 = function (x, n) {
        return Array(n).fill(x).map((element, i) => element*(i+1));
    }
    
    console.log(solution2(3, 5))   // [3, 6, 9, 12, 15]

    '알고리즘 공부 > JavaScript 문제' 카테고리의 다른 글

    항해 99 - 2016년  (0) 2023.04.16
    항해 99 - 부족한 금액 계산하기  (0) 2023.04.16
    항해 99 - 행렬의 덧셈  (1) 2023.04.16
    항해 99 - 핸드폰 번호 가리기  (0) 2023.04.16
    항해 99 - 평균 구하기  (0) 2023.04.15

    댓글

Designed by Tistory.