알고리즘/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 해준다.