JavaScript 프로그래머스 알고리즘 21

2024/01/28 Programmers입문 共 747 字,约 3 分钟
myeonghun

🤭 JavaScript 프로그래머스 알고리즘21(연속된 수의 합)


코딩 기초 트레이닝 : 연속된 수의 합

function solution(num, total) {
  var answer = [];
  return answer;
}

문제 설명

연속된 세 개의 정수를 더해 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]

🤭 내가 풀이한 답

function solution(num, total) {
  let x = (total - (num * (num - 1)) / 2) / num;
  let answer = [];
  for (let i = 0; i < num; i++) {
    answer.push(x + i);
  }

  return answer;
}
x 값을 계산합니다. 이 값은 연속된 num 개의 정수를 더한 합이 total이 되는 경우의 첫 번째 정수입니다. total에서 num 개의 정수를 더한 합을 빼고, num 개로 나누어서 계산합니다.
빈 배열 answer를 초기화합니다. 이 배열은 연속된 정수들을 담을 용도로 사용됩니다.
for 루프를 사용하여 num 개의 정수를 생성하고, x 값과 i를 더한 값을 answer 배열에 추가합니다. i 값은 0부터 num - 1까지 변화하며, 이를 더하여 연속된 정수를 생성합니다.
모든 정수가 answer 배열에 추가되면, 배열을 오름차순으로 정렬합니다.
정렬된 배열 answer를 반환합니다.

Search

    Table of Contents