처음에 접근할 땐 return 할 int 배열을 arr길이와 동일한 길이로 설정해놓고 선언한 다음에 인덱스에 값을 넣는 방식으로 진행했는데, 값을 넣지 않는 자리는 0으로 초기화 되서 출력됐다.

[5,10] 으로 나온게 아니라 [5,10,0,0]으로 나옴

 

>>  return할 int 배열을 list로 받아서 요소 넣은 다음 int 배열로 변환하고 리턴

풀이

 public int[] solution(int[] arr, int div) {
        // list 생성
        List<Integer> list = new ArrayList<Integer>();
        for (int a : arr) {
            if (a % div == 0) {
                list.add(a);
            }
        }
        //리스트 정렬
        Collections.sort(list);
        if (list == null) list.add(-1);

        // list를 int배열로 변환후 리턴
        int[] res = list.stream().mapToInt(i -> (int) i).toArray();
        return res;
    }

 

ArrayList를 int배열로 변환 방법

https://velog.io/@deannn/Java-int%ED%98%95-ArrayList-%EB%B0%B0%EC%97%B4-%EB%B3%80%ED%99%98

 

[Java] Integer ArrayList을 int 배열로 변환 방법

String 타입의 List를 배열로 변환할 때는 toArray()를 사용하면 변환할 수 있다. 하지만 int형과 같은 primitive 타입은 toArray()를 사용할 수 없다. 따라서 int형과 같은 primitive 타입은 아래의 방법을 통해

velog.io

 

list 정렬 방법

https://codechacha.com/ko/java-sort-list/#2-listsort%EB%A1%9C-list-%EC%A0%95%EB%A0%AC

+ Recent posts