문제 링크 - https://programmers.co.kr/learn/courses/30/lessons/12910
- 해결 방법
각 행렬의 값을 divisor로 나누어, 나누어 떨어진다면 배열에 담아 반환을 하고 없다면 -1을 배열에 담아 반환을 해주면 된다.
이 때 배열의 크기가 정해져 있지 않으므로 ArrayList를 사용하면 좋을 것 같아 ArrayList를 생성하고 배열의 각 요소가 divisor로 나누어 떨어진다면
list.add() 하여 저장해 두고, 마지막에 list의 크기가 0이라면 [-1], 아니라면 Collections.sort()로 정렬한 후, 배열에 담아 반환해 주었다.
import java.util.*;
class Solution {
public int[] solution(int[] arr, int divisor) {
List<Integer> nums = new ArrayList<Integer>();
for(int i=0;i<arr.length;i++){
if(arr[i]%divisor==0){
nums.add(arr[i]);
}
}
Collections.sort(nums);
if(nums.size()==0){
int [] result = new int [1];
result[0]=-1;
return result;
}else{
int [] result = new int[nums.size()];
for(int i=0;i<nums.size();i++){
result[i] = nums.get(i);
}
return result;
}
}
}