알고리즘/Java

[JAVA] 프로그래머스 나누어 떨어지는 숫자 배열

유리코딩 2021. 11. 11. 02:39
반응형

알고리즘

JAVA 프로그래머스 나누어 떨어지는 숫자 배열


 

1. 문제

https://programmers.co.kr/learn/courses/30/lessons/12910

 

2. 풀이

쉬운듯 어려운듯 쉬운문제..... 리스트는 잘 몰라도 배열은 꽤 안다고 생각했는데 문제를 풀때 배열의 사이즈를 정하지 않아 계속 에러가 났다. 결국 해결해서 다시는 안잊어버리게 주석으로 박제!!

배열과 리스트의 차이를 알게해준문제!!  => 참고자료

import java.util.*;
class Solution {
    public int[] solution(int[] arr, int divisor) {
    	// 배열 사용전에는 크기를 지정하지 않아도 됨.
        int[] answer = {};
        
       //배열을 리스트로 전환하기 위한 과정
        ArrayList<Integer> list = new ArrayList<Integer>();
        
        for(int i=0; i<arr.length; i++){
            if(arr[i] % divisor == 0){
                list.add(arr[i]);  //리스트에 추가하기
            }
        }
        
        // 리스트가 비어 있으면 -1을 배열에 추가하기    
        if(list.isEmpty()){
            list.add(-1);
        }
                
        // 왜 배열의 크기를 지정해야되는지??
        // 배열을 사용할 때는 배열의 크기를 지정해야됨..
        answer = new int[list.size()]; //배열에 사이즈 지정하기
        
        //리스트를 배열로 바꾸는 과정
        for(int i=0; i<list.size(); i++){
        	// i번째 배열에 i번째 리스트 넣기
            answer[i] = list.get(i); 
            //get은 리스트에서 어떤 객체를 가져오는데 사용되는 메소드
        }
        
        Arrays.sort(answer);  //리스트 정렬하기
        return answer;
    }
}
반응형