array의 각 element 중 divisor로 나누어 떨어지는 값을 오름차순으로 정렬한 배열을 반환하는 함수, solution을 작성해주세요.
divisor로 나누어 떨어지는 element가 하나도 없다면 배열에 -1을 담아 반환하세요.
import java.util.ArrayList;
public class DivisorArray {
public static void main(String[] args) {
DivisorArray da = new DivisorArray();
int[] arr = {3,2,6};
int divisor = 10;
int[] solution = da.solution(arr, divisor);
for (int i : solution) {
System.out.println("i = " + i);
}
}
public int[] solution(int[] arr, int divisor) {
ArrayList<Integer> result = new ArrayList<>();
for(int a : arr){
if(a%divisor == 0){
result.add(a);
}
}
int size = result.size();
if(size == 0) return new int[] {-1};
result.sort((o1, o2) -> {
if(o1>o2) return 1;
else return -1;
});
int[] answer = new int[size];
for(int i=0; i<size; i++){
answer[i] = result.get(i);
}
return answer;
}
}
문제 난이도가 매우 쉬움이였다. ArrayList로 풀어도 되고 배열로 풀수도 있었고 stream으로 푼 사람도 있었다.
List 정렬에 대해 복습했고 stream도 써보자