약수 구하기

문제

 


나의 생각

 

for문과 List 사용하여서 몫이 0 인 값만 추출. 

list를 다시 배열로 반환할 생각으로 접근. 

 


나의 답안

 

public static Integer[] solution(int n) {
    List<Integer> list = new ArrayList<>();
    for(int i = 1 ; i <= n ; i ++){
        if (n % i == 0){
            list.add(i);
        }
    }

    return list.toArray(new Integer[list.size()]);
}

다른 답안

 

mapToInt를 쓰면 Integer 타입이 아닌 int 타입으로 반환이 가능하다. 

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();
    }
}

'Programmers 문제풀이 > Lv.0' 카테고리의 다른 글

숫자 찾기  (0) 2023.02.28
369게임  (0) 2023.02.28
피자 나눠 먹기 (2)  (0) 2023.02.28
외계행성의 나이  (0) 2023.02.28
인덱스 바꾸기  (0) 2023.02.27