나누어 떨어지는 숫자 배열 Lv. 1

박영준·2022년 11월 21일
0

코딩테스트

목록 보기
14/300
class Solution {
    public int[] solution(int[] arr, int divisor) {
        int[] answer = {};
        return answer;
    }
}

해결법

방법 1

import java.util.*;

class Solution {
    public int[] solution(int[] arr, int divisor) {
        
        // divisor로 나눴을 때, 나머지가 0인 개수를 저장할 변수
        int count = 0;
        // divisor로 나눴을 때, 나머지가 0인 개수를 저장할 변수
        int number = 0;
        
        
        for (int i = 0; i < arr.length; i++) {
        	// divisor로 나눴을 때, 나머지가 0이면(= 나누어 떨어지면)
            if (arr[i] % divisor == 0) {
            	// count를 증가-->
                count++;
            } 
        }
        // count가 0이면(divisor로 나눴을 때, 나머지가 0인 숫자가 없을 경우) (위쪽 for문의 반대 경우)
        if(count == 0) {
        	// answer에 -1을 저장하고, 값을 반환한다
            int[] answer = {-1};
            return answer;
        }
        
        // 답을 반환할 배열을 선언(구한 배열의 길이 만큼 배열을 선언) (위쪽 for문의 count++에서 이어지는 것)
        int[] answer = new int[count];
        
        for (int i = 0; i < arr.length; i++) {
        	// divisor로 나눴을 때, 나머지가 0이면(= 나누어 떨어지면)
            if (arr[i] % divisor == 0) {
            	// 배열에 나머지가 0이 되는 값들을 저장
                answer[number] = arr[i];
                // number를 증가
                number++;
            }
        }
        
        // 오름차순
        Arrays.sort(answer);
            
        return answer;
    }
}
  • .import java.util.*;
    - util package에 내가 사용하는 클래스가 있으니 거기를 참조해서 찾을 것
    - java.util.
    의 의미 : util디렉토리 안에 있는 모든 클래스를 임포트(컴퓨터에서는 다른 프로그램으로부터 데이터를 갖고 오는 것)하겠다)

  • import java.util —> 안 됨! 이것은 java package의 util이라는 클래스를 의미

방법 2

import java.util.*;

class Solution {
    public int[] solution(int[] arr, int divisor) {
        
        ArrayList<Integer> list = new ArrayList<>();
        
        for (int i = 0; i < arr.length; i++) {
            if (arr[i] % divisor == 0) {
                list.add(arr[i]);
            }
        }
        
        if(list.size() == 0) {
            int[] answer = {-1};
            return answer;
        }
        
        int[] answer = new int[list.size()];
        
        for(int i = 0; i < answer.length; i++) {
            answer[i] = list.get(i);
        }
        
        Arrays.sort(answer);
        
        return answer;
    }
}

나누어 떨어지는 숫자 배열 Lv. 1

profile
개발자로 거듭나기!

0개의 댓글