[JAVA/프로그래머스] 연습문제: 나누어 떨어지는 숫자 배열

👀 문제

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

👊 도전

1. 설계

  1. 배열 값이 divisor로 나눠지면 ArrayList에 추가한다.
  2. list에 넣은 값이 없을 경우 answer에 -1을 넣는다.
  3. 존재할 경우 answer에 옮겨담아 오름차순 정렬한다.

2. 구현 (성공 코드)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
import java.util.*;
/**
 *
 * @author HEESOO
 *
 */
 class Solution {
   public int[] solution(int[] arr, int divisor) {
       int[] answer = {};
       ArrayList<Integer> list=new ArrayList<>();
       for(int num:arr){
           if(num%divisor==0) list.add(num);
       }
       if(list.size()==0){
           answer=new int[1];
           answer[0]=-1;
       }
       else{
           answer=new int[list.size()];
           for(int i=0;i<answer.length;i++){
               answer[i]=list.get(i);
           }
           Arrays.sort(answer);
       }
       return answer;
   }
 }
 

3. 결과

실행결과 🤟 성공 🤟

4. 설명

  1. 나눠 떨어지는 숫자는 list에 저장한다.
  2. list를 배열 answer에 옮겨 담은 후 오름차순 정렬한다.
    • list에 저장된 값이 없을 경우 answer에 -1을 저장한다.
    • list에 값이 존재할 경우 answer에 옮겨 담은 후, sort함수로 오름차순 정렬한다.

👏 해결 완료!

쉽다! 다른 사람들도 ArrayList을 이용해 풀었다.