나누어 떨어지는 숫자 배열

정병웅·2023년 3월 26일
0

알고리즘 스터디

목록 보기
13/14

문제 설명

array의 각 element 중 divisor로 나누어 떨어지는 값을 오름차순으로 정렬한 배열을 반환하는 함수, solution을 작성해주세요.
divisor로 나누어 떨어지는 element가 하나도 없다면 배열에 -1을 담아 반환하세요.

코드 설명

import java.util.*;

class Solution {
    public int[] solution(int[] arr, int divisor) {
        //결과값 담은 배열
        ArrayList<Integer> divisorArrList = new ArrayList<Integer>(); 
        for(int i=0;i<arr.length;i++){
            if(arr[i]%divisor == 0){
                divisorArrList.add(arr[i]);
            }
        }
        if(divisorArrList.size() == 0){
                divisorArrList.add(-1);
            }
        int[] divisorList = divisorArrList.stream().mapToInt(i -> i).toArray();
        Arrays.sort(divisorList);
        return divisorList;
    }
}

코드 풀이

  1. 배열의 길이를 특정할 수 없기 때문에 ArrayList를 생성하였다.
  2. for 문을 돌리면서 특정 조건에 맞을 때 arraylist에 add를 하였다.
  3. arraylist size가 0 일 경우 -1 만 add 한다.
  4. 최종 반환은 int[] 이기 때문에 arraylist → int[] 로 stream을 사용하여 변환 한다.

참고
https://velog.io/@deannn/Java-int%ED%98%95-ArrayList-%EB%B0%B0%EC%97%B4-%EB%B3%80%ED%99%98

profile
인생은 IT 노가다

0개의 댓글