처음에 접근할 땐 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
'algorithm > 프로그래머스' 카테고리의 다른 글
프로그래머스 - 같은 숫자는 싫어 JAVA (0) | 2022.10.19 |
---|---|
프로그래머스 - 문자열 내림차순으로 배치하기 JAVA (0) | 2022.09.30 |
프로그래머스 - 핸드폰 번호 가리기 JAVA (0) | 2022.09.29 |
프로그래머스 - 서울에서 김서방 찾기 JAVA (0) | 2022.09.29 |
프로그래머스 - 두 정수 사이의 합 JAVA (2) | 2022.09.29 |