나누어 떨어지는 숫자 배열
array의 각 element 중 divisor로 나누어 떨어지는 값을 오름차순으로 정렬한 배열을 반환하는 함수, solution을 작성해주세요.
divisor로 나누어 떨어지는 element가 하나도 없다면 배열에 -1을 담아 반환하세요.
arr은 자연수를 담은 배열입니다.
정수 i, j에 대해 i ≠ j 이면 arr[i] ≠ arr[j] 입니다.
divisor는 자연수입니다.
array는 길이 1 이상인 배열입니다.
💻 풀이
divisor과 나눠서 0이 되는 숫자를 담을 배열 numList를 선언해주고,numList[]에 값을 넣고 인덱스인 j를 1 추가해준다.Arrays.sort()를 사용해 정렬해주고, 유효한 값이 있는 j 인덱스 까지 반환해준다.⌛ 시간 0.16ms ~ 1.46ms
public int[] solution(int[] arr, int divisor) {
int[] numList = new int[arr.length];
numList[0] = -1;
int j = 0;
for(int i = 0; i < arr.length; i++) {
if(arr[i] % divisor == 0) {
numList[j] = arr[i];
j++;
}
}
if(j == 0) {
return Arrays.copyOf(numList, 1);
}
numList = Arrays.copyOf(numList, j);
Arrays.sort(numList);
return numList;
}