https://programmers.co.kr/learn/courses/30/lessons/12910
풀이
ArrayList 를 정렬하는데는 Collections.sort() 메소드를 사용했다. sort() 메소드의 인자로 정렬할 리스트를 넘겨준다.
import java.util.ArrayList;
import java.util.Collections;
class Solution {
public int[] solution(int[] arr, int divisor) {
ArrayList<Integer> list = new ArrayList<>();
int[] answer;
for (int a : arr){
if (a % divisor == 0){
list.add(a);
}
}
if (list.size() == 0) {
answer = new int[1];
answer[0] = -1;
}
else{
Collections.sort(list); // 정렬
answer = new int[list.size()];
for (int i = 0 ; i<list.size(); i++){
answer[i] = list.get(i);
}
}
return answer;
}
}
다른사람 풀이
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};
java.util.Arrays.sort(answer);
return answer;
}
}
스트림을 사용하는데 filter() 함수와 람다식을 사용해서 처음부터 한줄코드로 간결하게 작성했다.
스트림은 자바8부터 추가된 컬렉션의 저장 요소를 하나씩 참조해서 람다식으로 처리할 수 있도록 해주는 반복자고,
filter()는 말 그대로 스트림내 요소에 대해서 필터링하는 작업을 하는 함수다.
'Algorithm & Data Structure > 프로그래머스' 카테고리의 다른 글
[Java] 프로그래머스 : 제일 작은 수 제거하기 (0) | 2022.01.31 |
---|---|
[Java] 프로그래머스 : 같은 숫자는 싫어 (0) | 2022.01.31 |
[JAVA] 프로그래머스 : 자릿수 더하기 (0) | 2022.01.21 |
[JAVA] 프로그래머스 : 약수의 합 (0) | 2022.01.21 |
[JAVA] 프로그래머스 : 정수 제곱근 판별 (0) | 2022.01.21 |