프래그래머스 나누어떨어지는 숫자배열을 풀어보자

JD·2021년 11월 20일
0

중요사항

  • arr는 자연수

📢나누어떨어지는 숫자 배열

배열속 자연수가 divisor로 나누었을때 나누어 떨어지는 수를 반환해라 없으면 -1

📢풀이

  • answer은 오름차순으로 반환하기때문에 Arrays.sort(arr);로 정렬 한다
  • 반복문과 조건을 사용하여 list에 값저장
  • 값이 저장된게 없으면 -1로 반환
  • `Arraylist`에 저장된값을 `answer`에 저장하도록 반복문 사용

📢코드

import java.util.*;

class Solution {
    public int[] solution(int[] arr, int divisor) {

        ArrayList<Integer> list = new ArrayList<>();


        Arrays.sort(arr);

        for(int i=0; i<arr.length; i++){
            if(arr[i]%divisor==0)list.add(arr[i]);

        }

        int[] answer = new int[list.size()];

        if(list.size()==0){
            int[] zero = {-1};
            return zero;
        }

        int cnt = 0;
        for(int temp:list){
            answer[cnt++] = temp;
        }

        return answer;
    }
}

📢마치며

이번문제는 stream().filter() 사용하면 편할건 알았는데 사용하면 그냥 javascript로 푸는거랑 차이 없을거 같아서 그건 사용 안하고 대신 반복문을 사용해서 작성했다 마지막에 list를 배열로 변환하는걸 까먹어서 반복문으로 저장했는데

📌.toArray()로 변환하는걸 다시 기억 좀 해야겠다

📢출처

👍프로그래머스

0개의 댓글