연습문제
🔥 나누어 떨어지는 숫자 배열 🔥
array의 각 element 중 divisor로 나누어 떨어지는 값을 오름차순으로 정렬한 배열을 반환하는 solution을 완성해보자
divisor로 나누어 떨어지는 element가 하나도 없다면 배열에 -1을 담아 반환하자
arr | divisor | return |
---|---|---|
[5,9,7,10] | 5 | [5,10] |
[2,36,1,3] | 1 | [1,2,3,36] |
[2,3,6] | 10 | [-1] |
import java.util.*;
class Solution {
public int[] solution(int[] arr, int divisor) {
ArrayList<Integer> list = new ArrayList<Integer>();
int n =0;
for(int i=0;i<arr.length;i++){
if(arr[i] % divisor == 0){
list.add(arr[i]);
n++;
}
}
if(n==0){
list.add(-1);
}
int[] answer = list.stream()
.mapToInt(Integer :: intValue)
.toArray();
Arrays.sort(answer);
return answer;
}
}
메모리: 76.1 MB, 시간: 2.84 ms
1. java stream을 이용
import java.util.Arrays;
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;
}
}
메모리: 78.7 MB, 시간: 2.28 ms
익숙한 방법말고 java의 기능들을 활용해서 문제를 푸는 노력을 해보자!