본문 바로가기

개발과/이 문제 알고리쯤?

나누어 떨어지는 숫자배열 : java


//나누어 떨어지는 숫자배열
//>>>첫번째 시도 <<<
//1. arr 의 값 구한다. 향상된 for
//2. divisor로 나눈다.
//3. a>=d,값을 answer에 저장, a<d -1을 저장.

//>>>조언을 토대로 rebuilding<<<

//1.배열로 답을 나타내라.
//2.arr값 구해라.
//3. divisor로 나눌수 있냐?
//4. 나눌수 없으면 -1 넣어라.
//5. 오름차순


import java.util.ArrayList;
import java.util.Arrays;

class Solution {
public int[] solution(int[] arr, int divisor) {
// 나의 첫번째 시도
// int[] answer = {};
// for (int Num : arr){
// if(Num>=divisor){
// answer += Num/divisor;
// } else{
// answer += -1; // answer = 배열이기 때문에 오류가 난다.
// }
// }

// 최하나님의 조언을 통한 방법
ArrayList<Integer> answer = new ArrayList<>(); // 정답을 list 콜렉션에 저장 : 콜렉션으로 나타내야 한다는 생각 부족,,,
for (int i =0; i<arr.length; i++) {
if (arr[i] % divisor ==0) {
answer.add(arr[i]);
}
}
int[] array; //36~43번줄 get(i) 까지의 생각의 도달이 부족했다.
if (answer.size()==0) { //콜렉션의 길이는 size(), 배열의 길이는 length
array = new int[]{-1};
} else {
array = new int[answer.size()];
for (int i=0; i<array.length; i++) {
array[i] = answer.get(i);
}
}

Arrays.sort(array);
return array;
}
}

'개발과 > 이 문제 알고리쯤?' 카테고리의 다른 글

두 정수 사이의 합 : java  (0) 2023.04.09
평균구하기 : java  (0) 2023.04.09
핸드폰 번호가리기 : java  (0) 2023.04.09
행렬의 덧셈 : Java  (0) 2023.04.09
It ain't over till it's over.  (0) 2023.04.08