[Programmers Lv.0 | JS] 연속된 수의 합

Bori·2023년 2월 17일
0

Algorithm

목록 보기
3/26
post-thumbnail

프로그래머스 연속된 수의 합 문제 링크

나의 풀이

function solution(num, total) {
    const sum = num * (num - 1) / 2;
    const minNum = (total - sum) / num;

    return  Array.from({length: num}, (_, i) => i + minNum);
}

문제를 풀면서

Array.from

ES6에 도입된 Array.from 메서드는 유사 배열 객체array-like object 또는 이터러블 객체iterable object를 인수로 전달받아 배열로 변환하여 반환

// 유사 배열 객체를 반환하여 배열 생성
Array.from({ length: 2, 0: 'a', 1: 'b' }); // (2) ['a', 'b']

// 이터러블을 반환하여 배열 생성
// 문자열은 이터러블이다.
Array.from('string'); // (6) ['s', 't', 'r', 'i', 'n', 'g']
  • Array.from의 두 번째 인수로 콜백 함수를 전달해 값을 만들면서 요소를 채울 수 있다.
    • 두 번째 인수의 콜백함수에 첫 번째 인수로 생성된 배열의 요소값과 인텍스를 순차적으로 전달하면서 호출하고, 콜백 함수의 반환값으로 구성된 배열을 반환
// length만 존재하는 유사 배열 객체를 전달하면 undefined를 요소로 채운다.
Array.from({ length: 3 }); // (3) [undefined, undefined, undefined]

// 두 번째 인수로 전달한 콜백 함수의 반환값으로 구성된 배열을 반환
Array.from({ length: 3 }, (_, i) => i); // (3) [0, 1, 2]

0개의 댓글