개발 기록 남기기✍️

[프로그래머스] 연속된 수의 합 본문

코딩 테스트 연습

[프로그래머스] 연속된 수의 합

너해동물원 2022. 12. 31. 15:19

🗒️ 문제 설명

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

❇️ 나의 풀이

  • 간만에.. 노트를 꺼내서 방정식을 끄적여봤습니다. 미지수를 x로 놓고 num이 4라고 가정하면 x + (x+1) + (x+2) + (x + 3) = 14. num만큼의 x와 1부터 (num-1)까지 모두 더한 값은 total이 된다.
  • 먼저 1부터 (num-1)까지 모두 더한 값은 for 함수로 돌면서 add 변수에 할당하고, x 값을 구하기 위해서 (total - add) / num을 실행한다.
  • 빈 배열을 생성하고, for 함수를 통해 x부터 x+add 값까지 모두 배열에 push해준다.

 

function solution(num, total) {
    var add = 0;
    for (i=(num-1); i>=0; i--){
        add+=i
    }
    var x = (total - add) / num;
    console.log(x)
    var answer = [];
    for(i=0;i<num;i++){
        answer.push(x+i)
    }
    return answer
}