java

[프로그래머스 - 자바] 약수 구하기

tues 2023. 8. 29. 00:08

문제 설명

 

솔루션

class Solution {
    public int[] solution(int n) {
        int cnt = 0;
        int j = 0;
        
        for(int i = 1; i <= n; i++){
            if(n % i == 0){
                cnt ++;
            }
        }
        int[] answer = new int [cnt];
        for(int i = 1; i <= n; i++){
            if(n % i == 0){
                answer[j] = i;
                j++;
            }
        }
        return answer;
    }
}

배열의 갯수를 정한다 

for문을 통해서 answer[j] = i;

j ++

 

다른 방법

import java.util.List;
import java.util.ArrayList;

class Solution {
    public int[] solution(int n) {
        List<Integer> answer = new ArrayList<>();
        for(int i=1; i<=n; i++){
            if(n % i == 0){
                answer.add(i);
            }
        }
        return answer.stream().mapToInt(x -> x).toArray();
    }
}

리스트로 변경하여 약수일때마다 answer.add(i)

다시 배열로 변경하여 반환한다