약수 구하기

Wook·2024년 10월 23일

🧩코딩테스트

목록 보기
46/46
post-thumbnail

문제

정수 n이 매개변수로 주어질 때, n의 약수를 오름차순으로 담은 배열을 return하도록 solution 함수를 완성해주세요.

조건

  • 1 ≤ n ≤ 10,000

예시

nresult
24[1, 2, 3, 4, 6, 8, 12, 24]
29[1, 29]

풀이

  • 약수가 몇 개일지 알 수 없기 때문에 크기가 유동적으로 변할 수 있는 List 선택
  • 1부터 차례로 n을 나눠보고, 나머지가 없을 경우 List에 추가
  • List가 완성되면 같은 길이를 가지는 배열 생성
  • List의 값들을 하나씩 생성한 배열에 담아주고, 오름차순으로 정렬 => Arrays.sort()

코드

import java.util.*;

class Solution {
    public int[] solution(int n) {
        List<Integer> list = new ArrayList<>();
        
        for(int i = 1; i <= n; i++){
            if(n % i == 0){
                list.add(i);
            }
        }
        
        int[] answer = new int[list.size()];
        for(int i = 0; i < answer.length; i++){
            answer[i] = list.get(i);
        }
        
        Arrays.sort(answer);
        return answer;
    }
}
profile
Keep going

0개의 댓글