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

class Solution {
public int[] solution(int num, int total) {
int mid = total / num;
int tmp = 0;
int[] answer = new int[num];
if (num == 2){
if (mid * 2 + 1 == total){
answer[0] = mid;
answer[1] = mid+1;
return answer;
}
answer[0] = mid-1;
answer[1] = mid;
return answer;
}
else if (num % 2 == 0){
int min = mid - num/2 + 1;
for (int i=0; i<num; i++){
answer[i] = min + i;
}
return answer;
}
int min = mid - num/2;
for (int i=0; i<num; i++){
answer[i] = min+i;
}
return answer;
}
}
class Solution {
public int[] solution(int num, int total) {
int mid = total / num;
int tmp = 0;
int[] answer = new int[num];
if (num % 2 == 0){
int min = mid - num/2 + 1;
for (int i=0; i<num; i++){
answer[i] = min + i;
}
return answer;
}
int min = mid - num/2;
for (int i=0; i<num; i++){
answer[i] = min+i;
}
return answer;
}
}
잘 통과된다.
6+7의 mid는 7이고 7+8의 mid도 7이라고 생각해서 (계?산실?수) 2인지 아닌지도 검사해야 한다고 생각했었음.
자바도 C처럼 배열(array)을 한 번 생성하고 나면 길이를 변경할 수 없다.
요소를 추가하거나 삭제하려면 더 크거나 작은 배열을 만든 뒤 원래의 것을 새 것에 복사해 넣어야 한다.
자료형 [] 변수이름 = new 자료형[배열길이]; 와 같이 길이가 정해진 배열을 만들 수 있다.