알고리즘 문제 "나누어 떨어지는 숫자 배열"를 풀어보았습니다.
array의 각 element 중 divisor로 나누어 떨어지는 값을 오름차순으로 정렬한 배열을 반환하는 함수, solution을 작성해주세요.
divisor로 나누어 떨어지는 element가 하나도 없다면 배열에 -1을 담아 반환하세요.
제한사항
- arr은 자연수를 담은 배열입니다.
- 정수 i, j에 대해 i ≠ j 이면 arr[i] ≠ arr[j] 입니다.
- divisor는 자연수입니다.
- array는 길이 1 이상인 배열입니다.
arr배열의 값들을 divisor로 나누어 divisor의 배수를 구합니다.
구한 값을 a1 리스트에 넣어준 후 배열 타입으로 변경하여 오름차순으로 정렬해준다.
divisor로 나누어 떨어지는 값이 없다면 -1을 출력해준다.
import java.util.*; class Solution { public int[] solution(int[] arr, int divisor) { int[] answer = {}; // a1 이라는 ArrayList 를 선언 ArrayList<Integer> a1 = new ArrayList<Integer>(); for(int i = 0; i <arr.length; i++){ //배열에서 divisor의 배수를 찾기위한 조건문 if(arr[i]%divisor == 0){ a1.add(arr[i]); // a1 리스트에 나누어 떨어지는 값 넣기 } } if(a1.isEmpty()){ a1.add(-1); //a1 리스트에 값이 없을경우 } answer = new int[a1.size()]; //a1 리스트를 answer 배열에 넣기 for(int i = 0; i<a1.size() ; i++){ answer[i] = a1.get(i); } //sort()로 오름차순으로 정렬 Arrays.sort(answer); return answer; } }