

코드
import java.util.Arrays;
class Solution {
public int[] solution(int[] arr, int divisor) {
int count = 0;
for(int i = 0; i <arr.length; i++){
if(arr[i] % divisor == 0)
count ++;
}
if (count == 0){
int[] answer = {-1};
return answer;
}
int[] answer = new int[count];
for(int i =0 , j=0; i<arr.length; i++){
if(arr[i]%divisor == 0)
answer[j++]=arr[i];
}
Arrays.sort(answer);
return answer;
}
}
for 문을 통해 divisor로 나누어 지는 수를 count하고 그 count를 이용해 나누어지지않을 경우 -1을 리턴하는 코드다
count != 0일 경우 나누어 떨어진 원소들의 수만큼 배열의 크기를 정하고 divisor로 나누어 떨어지는 원소를 answer에 담는다.
뒤에 부분을 생각하지 못해 구글링하여 참조하여서 완성했다.
Arrays.sort를 이용해서 오름차순으로 정렬했는데 해당부분은 따로 정리 하겠다.
다른사람코드

Arrays.stream을 이용해서 짧게 구현했다. stream에 대해 공부해봐야겠다.
'java 배우기 > 알고리즘 문제' 카테고리의 다른 글
| 알고리즘) 핸드폰 번호 가리기 (0) | 2024.07.29 |
|---|---|
| 알고리즘) 음양 더하기 (0) | 2024.07.26 |
| 알고리즘) 정수 제곱근 판별 (0) | 2024.07.02 |
| 알고리즘) 자연수 뒤집어 배열로 만들기 (0) | 2024.07.01 |
| 알고리즘) X만큼 간격이 있는 n개의 숫자 (0) | 2024.06.26 |