프로그래머스 JS LV0

LV0 86 연속된 수의 합

와라리요 2022. 11. 25. 18:55

문제 설명

 - 연속된 세 개의 정수를 더해 12가 되는 경우는 3, 4, 5입니다. 두 정수 num과 total이 주어집니다. 연속된 수 num개를 더한 값이 total이 될 때, 정수 배열을 오름차순으로 담아 return하도록 solution함수를 완성해보세요.

 

제한사항

  • 1 ≤ num ≤ 100
  • 0 ≤ total ≤ 1000
  • num개의 연속된 수를 더하여 total이 될 수 없는 테스트 케이스는 없습니다.

 

입출력 예

num total result
3 12 [3, 4, 5]
5 15 [1, 2, 3, 4, 5]
4 14 [2, 3, 4, 5]
5 5 [-1, 0, 1, 2, 3]

 

나만의 풀이

  이 문제는 JS를 이용해서 풀었다기 보다는 문제의 규칙을 찾아서 풀었다. 코드만 봐도 어떤 규칙이 있는지 보이기 때문에 풀이는 생략하겠습니다.

function solution(num, total) {
    let arr = [];
    let midNum = Math.floor(total / num);
    let sub = num % 2 === 0 ? num / 2 - 1 : Math.floor(num / 2);
    let start = midNum - sub;

    for (let i = 0; i < num; i++) {
        arr.push(start + i);
    }
    return arr;
}

'프로그래머스 JS LV0' 카테고리의 다른 글

LV0 88 평행  (0) 2022.11.29
LV0 87 겹치는 선분의 길이  (0) 2022.11.28
LV0 85 OX퀴즈  (0) 2022.11.24
LV 0 84 다음에 올 숫자  (0) 2022.11.24
LV0 83 다항식  (0) 2022.11.22