array의 각 element 중
divisor로 나누어 떨어지는 값을 오름차순으로 정렬한 배열
을 반환하는 함수, solution을 작성해주세요.
divisor로 나누어 떨어지는 element가 하나도 없다면 배열에 -1을 담아 반환하세요.
💡 코드는 통과되었지만 실행시간이 조금 비효율적이다. 어떻게 리팩토링 해야 할까?
import java.util.*;
class Solution {
public int[] solution(int[] arr, int divisor) {
Arrays.sort(arr);
List<Integer> answer = new LinkedList<>();
int cnt = 0;
for(int i : arr) {
if(i % divisor == 0){
answer.add(i);
cnt++;
}
}
if(cnt == 0) answer.add(-1);
return answer.stream().mapToInt(Integer::intValue).toArray();
}
}
import java.util.*;
class Solution {
public int[] solution(int[] arr, int divisor) {
int[] answer = Arrays.stream(arr).filter(factor -> factor % divisor == 0).toArray();
if(answer.length == 0) answer = new int[] {-1};
Arrays.sort(answer);
return answer;
}
}