[프로그래머스] Lv.0 약수 구하기.java

김엄지·2024년 4월 30일

알고리즘

목록 보기
82/90

1. 문제

문제 설명

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

제한사항

  • 1 ≤ n ≤ 10,000

2. 풀이 과정

약수는 어떤 수를 나누어 나머지가 없이 떨어지는 수를 말한다.

  1. 약수가 들어간 배열의 크기를 정하기 위해서, 약수의 개수를 저장할 변수 count를 선언, 초기화한다.
  2. 반복문으로 약수의 개수를 구한다.
  3. 약수를 저장할 배열 divisors 을 선언한다.
  4. 반복문으로 약수를 배열에 넣는다.

조건문으로 1부터 시작하여 정수 n까지 n을 나눴을 때 나머지가 0이 되는 식을 구한다.

3. 최종 코드

class Solution {
    public int[] solution(int n) {
        // 약수 개수 저장할 변수
        int count = 0;
        
        for(int i = 1; i <= n; i++) {
            if(n % i == 0) {
                count++;
            }
        }
        
        // 약수 저장할 배열
        int[] divisors = new int[count];
        
        int index = 0;
        for(int i = 1; i <= n; i++) {
            if(n % i == 0) {
                divisors[index++] = i;
            }
        }
        
        return divisors;
    }
}
profile
나만의 무언가를 가진 프로그래머가 되자

0개의 댓글