[프로그래머스,Level 1] 나누어 떨어지는 숫자 배열(JAVA 구현)
코테/프로그래머스(Programmers)

[프로그래머스,Level 1] 나누어 떨어지는 숫자 배열(JAVA 구현)

반응형

- 첫 풀이 및 정답풀이

  이 문제는 주어진 배열을 탐색하면서 divisor로 나눈 나머지가 0인 원소들을 배열에 담아 반환하면 되는 문제이다. 하지만 문제상으로 solution 메서드의 반환 값인 int [] 타입인 배열은 크기가 고정되어 있기 때문에 입출력 예와 같이 동적인 결과를 반환할 수 없다. 따라서 필자는 요소의 추가가 용이한 ArrayList 클래스를 사용했다.

import java.util.ArrayList;
import java.util.Collections;

class Solution {
    // 1. 반환타입을 ArrayList<Integer>로 변경.
    public ArrayList<Integer> solution(int[] arr, int divisor) {
        
        // 2. ArrayList 객체 생성.
        ArrayList<Integer> a = new ArrayList<Integer>();
        
        // 3. arr 배열을 탐색하며 divisor과 나눈 나머지가 0인 경우 ArrayList 객체에 삽입.
        for(int i=0;i<arr.length;i++){
            if(arr[i] % divisor == 0) a.add(arr[i]);
        }
        
        // 4. 위 과정을 마쳤을 때 ArrayList객체의 요소가 비어있다면 -1을 삽입.
        if(a.isEmpty()) a.add(-1);
        
        // 5. 오름차순 정렬.
        Collections.sort(a);
        
        return a;
    }
}
반응형