본문 바로가기
내일배움캠프/Daily Routine (알고리즘)

[내일배움캠프] 알고리즘 Daily Routine 25. 나누어 떨어지는 숫자 배열

by TIP__ 2024. 9. 6.

안녕하세요.
25회차 과제 "나누어 떨어지는 숫자 배열"입니다.

문제 설명

array의 각 element 중 divisor로 나누어 떨어지는 값을 오름차순으로 정렬한 배열을 반환하는 함수, solution을 작성해주세요.

divisor로 나누어 떨어지는 element가 하나도 없다면 배열에 -1을 담아 반환하세요.

제한 사항

arr은 자연수를 담은 배열입니다.

정수 i, j에 대해 i ≠ j 이면 arr[i] ≠ arr[j] 입니다.

divisor는 자연수입니다.

array는 길이 1 이상인 배열입니다.

풀이

import java.util.Arrays;
class Solution {
    public int[] solution(int[] arr, int divisor) {
        int size = 0;
        int cnt = 0;
        for (int num : arr){
            if(num%divisor==0){
                size++;
            }
        }
        int[] answer;
        if (size ==0){
            answer = new int[]{-1};
        }else{
            answer = new int[size];
                for (int num : arr){
                    if(num%divisor==0){
                        answer[cnt] = num;
                        cnt++;
                    }
                }
        Arrays.sort(answer); 
        }
        return answer;
    }
}

 -. 먼저 배열의 크기를 확인하여 answer의 크기를 지정해줘야 합니다.

 -. 향상된 for 반복문을 사용하여 배열의 size를 확인하였고

 -. size가 0인 경우 -1을 반환하도록 하였습니다.

 -. size가 0이 아닌 경우 answer의 크기를 size로 정해주고 answer 배열 에 조건에 맞는 값을 넣어주었습니다.

 -. 값을 오름차순으로 정렬하여 반환해야 하기 때문에 Arrays.sort를 사용하여 정렬해주었습니다.

배운 것

배열에 대해 다시 한 번 복습할 수 있는 문제였습니다.

 

저처럼 처음해보시는 분들에게 이 글이 조금이나마 도움이 되었으면 좋겠습니다.

댓글