반응형
내 코드
import java.util.*;
class Solution {
public int[] solution(int[] arr, int divisor) {
List<Integer> answer = new ArrayList<>();
for(int i : arr) {
if(i % divisor == 0) {
answer.add(i);
}
}
answer.sort(Comparator.naturalOrder());
if(answer.size() == 0) answer.add(-1);
return answer.stream().mapToInt(i -> i).toArray();
}
}
일단 리스트를 만들어서 (6번째 줄)
arr에 있는 값이 divisor로 나누어 떨어지면 리스트에 arr의 값을 넣고, (8-12번째 줄)
이 리스트를 오름차순으로 정렬하고, (14번째 줄)
만약에 나누어 떨어지는 element가 하나도 없으면 배열에 -1을 담고, (16번째 줄)
이 리스트를 스트림으로 변환한 후 (.stream()
) ,
map을 이용해 intStream을 가져오고 (.mapToInt(i -> i)
),
.toArray()
를 통해 배열로 만든다. (18번째 줄)
다른 분들 코드를 보았더니 stream의 filter를 사용하셨다.. 우와
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;
}
}
(참고)
✔ 리스트 오름차순 정렬
✔ 리스트를 배열로 변환
반응형
'코테 > 프로그래머스' 카테고리의 다른 글
[프로그래머스/Lv. 1] K번째수 (0) | 2023.02.21 |
---|---|
[프로그래머스/Lv. 1] 가운데 글자 가져오기 (0) | 2023.02.20 |
[프로그래머스/Lv. 1] 최대공약수와 최소공배수 (0) | 2023.02.20 |
[프로그래머스/Lv. 1] 문자열을 정수로 바꾸기 (0) | 2023.02.20 |
[프로그래머스/Lv. 1] 내적 (0) | 2023.02.20 |