본문 바로가기
코딩테스트/프로그래머스 1단계

프로그래머스 1단계 - 나누어 떨어지는 숫자 배열

by SICDev 2021. 4. 13.
반응형

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

 

코딩테스트 연습 - 나누어 떨어지는 숫자 배열

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

programmers.co.kr

 

 

import java.util.*;

class Solution {
    public int[] solution(int[] arr, int divisor) {
            //만약 arr에 {2, 9, 3, 6, 11}이 있다.
	    	//divisor가 3이라면 {3, 6, 9}만 출력한다.
	    	//divisor가 4라면 나누어 떨어지는 숫자가 없으니 -1 을 출력한다.
	    	//어떻게 풀어야할까..완전탐색...?
	    	//값을 비교해서 잇으면 리스트에 넣고 리스트를 오름차순 정렬한다.
	    	
	    	ArrayList<Integer> list = new ArrayList<Integer>();
	    	
	    	for(int i=0; i<arr.length; i++){
	    		//arr[i]의 값이 나누어 떨어진다면 리스트에 넣는다.
	    		if(arr[i] % divisor == 0 ){
	    			list.add(arr[i]);
	    		}
	    	}
	    	if(list.size() == 0){
	    		int[] answer = {-1};
	    		return answer;
	    	}else{
		        int[] answer = new int[list.size()];
		        for(int j=0; j<list.size(); j++){
		        	answer[j] = list.get(j);
		        }
		        Arrays.sort(answer);
		        return answer;
	    	}
    }
}
반응형