inblog logo
|
moohyun
    알고리즘문제풀기

    약수 구하기

    난이도 하
    화낼거양's avatar
    화낼거양
    Feb 28, 2025
    약수 구하기
    Contents
    정답
     
    출처 : https://school.programmers.co.kr/learn/courses/30/lessons/120897
     

    문제 설명

    정수 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를 순회하며, i가 n의 약수인 경우 리스트에 추가합니다.
    • 배열로 변환
      • int[] answer = new int[list.size()]; for (int i = 0; i < list.size(); i++) { answer[i] = list.get(i); }
      • 리스트의 크기와 동일한 크기의 정수 배열 answer를 생성합니다.
      • for 반복문을 통해 리스트의 각 요소를 배열에 복사합니다.
     
    Share article
    Contents
    정답

    moohyun

    RSS·Powered by Inblog