알고리즘, 코딩테스트/알고리즘 풀이

[프로그래머스/ 코딩테스트 연습문제] 나누어 떨어지는 숫자 배열

jiyoon0000 2024. 11. 5. 11:47

Q. 나누어 떨어지는 숫자 배열

A.

import java.util.*;
class Solution {
    public int[] solution(int[] arr, int divisor) {
//나누어 떨어지는 수를 찾아서 오름차순 정렬을 해야하니까 list를 만들어서 값을 저장하기
        ArrayList<Integer> answerList = new ArrayList<>();
        
//배열 요소를 하나씩 검사하며 나누어 떨어지는 수를 리스트에 추가
        for(int i : arr){
            if(i % divisor == 0){
                answerList.add(i);
            }
        }
            
//나누어 떨어지는 수가 없다면 = 리스트에 저장된 값이 없다면 -> isEmpty
//-1을 반환
//new int[] 로 새로운 배열을 만든 후 {-1}을 하여 값이 -1 하나인 배열을 만든다.
            if(answerList.isEmpty()){
                return new int[] {-1};
            }else{
//리스트가 빈 것이 아니라면 = 나누어 떨어지는 수가 있다면 -> 오름차순 정렬
                Collections.sort(answerList);

//ArrayList를 다시 배열로 변환
                int[] answer = new int[answerList.size()];
                
//answerList에 있는 값을 하나씩 answer 배열에 넣어줌
                for(int i=0; i<answerList.size();i++){
                    answer[i] = answerList.get(i);
                }
                return answer;
            }
    }
}