약수 구하기

난이도 하
화낼거양's avatar
Feb 28, 2025
약수 구하기
Contents
정답
 
 

문제 설명

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

제한사항

  • 1 ≤ n ≤ 10,000

입출력 예

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

입출력 예 설명

입출력 예 #1
  • 24의 약수를 오름차순으로 담은 배열 [1, 2, 3, 4, 6, 8, 12, 24]를 return합니다.
입출력 예 #2
  • 29의 약수를 오름차순으로 담은 배열 [1, 29]를 return합니다.
 
 
기본적으로 주어진 코드 :
class Solution { public int[] solution(int n) { int[] answer = {}; return answer; } }
 

정답

 
import java.util.ArrayList; import java.util.List; 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 < list.size(); i++) { answer[i] = list.get(i); } return answer; } }
 
  • 약수 목록 생성
    • List<Integer> list = new ArrayList<>(); for (int i = 1; i <= n; i++) { if (n % i == 0) { list.add(i); } }
    • ArrayList를 사용하여 약수를 저장할 빈 리스트 list를 생성합니다.
    • for 반복문을 통해 1부터 n까지의 숫자 i를 순회하며, in의 약수인 경우 리스트에 추가합니다.
  • 배열로 변환
    • int[] answer = new int[list.size()]; for (int i = 0; i < list.size(); i++) { answer[i] = list.get(i); }
    • 리스트의 크기와 동일한 크기의 정수 배열 answer를 생성합니다.
    • for 반복문을 통해 리스트의 각 요소를 배열에 복사합니다.
 
Share article

moohyun