본문 바로가기
Coding Test/JavaScript

[Javascript] (프로그래머스 level 0) 연속된 수의 합

by Chaedie 2022. 10. 28.
728x90

[Javascript] (프로그래머스 level 0) 연속된 수의 합

💡 구글에 Javascript 풀이가 많이 없거나, 배운 점이 있으면 포스팅합니다.

내 풀이

function solution(num, total) {
    const result = new Array(num).fill().map((_, i) => i);
    let subSum = result.reduce((acc, cur) => acc + cur);
    let left = 0;
    let right = num -1;

    while(true) {
        if (subSum === total) {
            return result.map((x) => x + left);
        } else if (subSum < total) {
            subSum = subSum - left + right + 1;
            left++;
            right++;
        } else { 
            subSum = subSum - right + left - 1;
            left--;
            right--;
        }    
    }   
}
  • 다른 사람 풀이 참고한 풀이

function solution(num, total) {
    let min = Math.ceil(total/num - Math.floor(num/2));
    let max = Math.floor(total/num + Math.floor(num/2));

    return new Array(max-min+1).fill(0).map((el,i)=>{return i+min;});
}
  • 배운 점, 느낀 점

  • 수학 문제는…. 저에게… 넘기 힘든… 벽이네요 ㅎㅎ

댓글