알고리즘 - 나누어 떨어지는 숫자 배열

Wonhee 📘·2022년 3월 16일
0

JAVA_알고리즘

목록 보기
16/21
post-thumbnail

알고리즘 문제 "나누어 떨어지는 숫자 배열"를 풀어보았습니다.

문제 설명

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;
    }
}
profile
오늘 걷지 않으면 내일은 뛰어야한다 🚶‍♂️ 🏃‍♀️

0개의 댓글