알고리즘/test

javascript) 프로그래머스 - 연속된 수의 합

이경찬 :) 2023. 1. 10. 12:27
function solution(num, total) {
    // 초기 값을 구하는 과정
    // total / num 으로 연속 되는 숫자의 중간 값을 구한다
    // 구한 중간값에서 num / 2의 내림을 해서 구한 자릿수 값을 빼고
    // 그 값을 올림으로 해서 초기 값을 구한다
    
    // ex) num = 3 / total = 12
    // total / num = 4
    // num / 2 = 1.5 >>> 1 (내림) Math.floor
    // 4 - 1 = 3 해서 초기값은 3(소수점이면 올려준다) Math.ceil
    const min = Math.ceil(total/num - Math.floor(num / 2));
    
    // Array.from() 매서드를 이용해 구해둔 초기값 부터 num의 길이 만큼 해서 답을 구한다.
    return Array.from({ length: num }, (_, i) => i + min);
}

이번 문제는 접근하는 방법이 조금 어려웠다.

접근법 :

1. 중간값을 구한다음 구한 자릿수 값을빼고 그 값을 올림으로 해서 초기값을 구한다.

2. 초기값 부터 num의 길이 만큼 return 해준다.