https://programmers.co.kr/learn/courses/30/lessons/12910
arrayList에 나누어 떨어지는 숫자만 넣고 배열에 다시 넣어주는 형태로 했다.
코드
import java.util.*;
class Solution {
public int[] solution(int[] arr, int divisor) {
int[] answer;
ArrayList<Integer> arrayList = new ArrayList<>();
for(int i : arr)
if(i % divisor == 0) arrayList.add(i);
if(arrayList.size() == 0){
answer = new int[1];
answer[0] = -1;
}
else{
answer = new int[arrayList.size()];
int index = 0;
for(int i : arrayList){
answer[index++] = i;
}
}
Arrays.sort(answer);
return answer;
}
}
직관적이고 뭔가 장황한 코드로 보인다.
다른 사람 코드
stream을 많이 사용하는구나...
효율은 그리 좋지 않다고 들어서 사용할지 모르겠지만 알아둬야겠다.
예전에는 순차 처리를 위해 ArrayList에 Iterator로 hasNext()를 사용하여 처리하였는데
JAVA 8에서 새로 나온 것이라고 한다. (저번에도 봤지만)
블로그 정리 대박! https://coding-factory.tistory.com/574
그리고 answer.length == 0 이면
answer = new int[] {-1};
이거 너무 좋은 것 같다. 알아두기!!!!
'알고리즘 > 프로그래머스' 카테고리의 다른 글
[프로그래머스] 문자열 내림차순으로 배치하기 for JAVA (0) | 2022.02.18 |
---|---|
[프로그래머스] 두 정수 사이의 합 for JAVA (0) | 2022.02.17 |
[프로그래머스] 같은 숫자는 싫어 for JAVA (0) | 2022.02.15 |
[프로그래머스] 가운데 글자 가져오기 for JAVA (0) | 2022.02.14 |
[프로그래머스] 2016년 for JAVA (0) | 2022.02.14 |