연속된 세 개의 정수를 더해 12가 되는 경우는 3, 4, 5입니다. 두 정수 num과 total이 주어집니다. 연속된 수 num개를 더한 값이 total이 될 때, 정수 배열을 오름차순으로 담아 return하도록 solution함수를 완성해보세요.
연속된 수의 합, 즉 등차수열을 구하는 문제이기에 아래 공식을 이용했다.
a : 첫째항, num : 개수
등차 수열의 합
= (a + (a+1) + .... + (a + num - 1))
= num(a + (num - 1) / 2)
등차수열의 합을 구하는 위 공식을 활용해 시작값을 구한 다음, num 크기의 배열을 선언, 루프를 돌며 각 방에 시작값 + i를 더해준다. iterator인 i를 더해주는 이유는 위 등차 수열 합 공식을 보면 알 수 있다.
class Solution {
public int[] solution(int num, int total) {
int startV = (total - (num * (num - 1)) / 2) / num;
int[] answer = new int[num];
for(int i=0; i<num; i++){
answer[i] = startV + i;
}
return answer;
}
}
