https://programmers.co.kr/learn/courses/30/lessons/12910
0.3ms
import java.util.*;
class Solution {
public int[] solution(int[] arr, int divisor) {
ArrayList<Integer> list = new ArrayList<>();
for (int i : arr) {
if (i % divisor == 0) {
list.add(i);
}
}
Collections.sort(list);
if (list.size() == 0) {
return new int[]{-1};
}
int[] answer = new int[list.size()];
for (int i = 0; i < list.size() ; i++) {
answer[i] = list.get(i);
}
return answer;
}
}
마지막 for문은 다음과 같이 stream을 사용하여 바꿀 수 있다. 다만 속도는 느려진다.
return list.stream().mapToInt(e -> e).toArray();
stream 사용
import java.util.*;
class Solution {
public int[] solution(int[] arr, int divisor) {
arr = Arrays.stream(arr).filter(e -> e % divisor == 0).toArray();
if (arr.length == 0) {
return new int[]{-1};
}
Arrays.sort(arr);
return arr;
}
}