문제 설명
내 코드
class Solution {
public int[] solution(int[] arr, int divisor) {
int[] answer = {};
int cnt = 0;
for (int i = 0; i < arr.length; i++) {
if (arr[i] % divisor != 0) arr[i] = 0;
else cnt++;
}
if (cnt == 0) return new int[]{-1};
answer = new int[cnt];
for (int i = arr.length - 1; i >= 0 ; i--) {
if (arr[i] != 0) answer[--cnt] = arr[i];
}
int temp;
for (int i = 0; i < answer.length; i++) {
for (int j = 0; j < answer.length; j++) {
if (answer[i] < answer[j]) {
temp = answer[j];
answer[j] = answer[i];
answer[i] = temp;
}
}
}
return answer;
}
}
1. divisor로 나누어떨어지는값 찾기
int cnt = 0;
for (int i = 0; i < arr.length; i++) {
if (arr[i] % divisor != 0) arr[i] = 0;
else cnt++;
}
2. 찾는 값이 1개도 없는 경우
if (cnt == 0) return new int[]{-1};
3. answer 배열에 값 복사
answer = new int[cnt];
for (int i = arr.length - 1; i >= 0; i--) {
if (arr[i] != 0) answer[--cnt] = arr[i];
}
4. answer 배열 정렬
int temp;
for (int i = 0; i < answer.length; i++) {
for (int j = 0; j < answer.length; j++) {
if (answer[i] < answer[j]) {
temp = answer[j];
answer[j] = answer[i];
answer[i] = temp;
}
}
}