반응형
문제 설명
정수 n이 매개변수로 주어질 때, n의 약수를 오름차순으로 담은 배열을 return하도록 solution 함수를 완성해주세요.
제한사항
- 1 ≤ n ≤ 10,000
입출력 예
입출력 예 설명
입출력 예 #1
- 24의 약수를 오름차순으로 담은 배열 [1, 2, 3, 4, 6, 8, 12, 24]를 return합니다.
입출력 예 #2
- 29의 약수를 오름차순으로 담은 배열 [1, 29]를 return합니다.
문제풀이 코드
import java.util.ArrayList;
class Solution {
public int[] solution(int n) {
ArrayList<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;
}
}
문제풀이 방법
약수를 구하는 방법은 구하려수는 수를 나누어서 나머지가 0이 되는 수를 찾는 것이다.
그런데 answer의 배열을 정하고 for문을 반복해야하는데 그 약수가 몇 개인지 알 수 없기 때문에
먼저 list를 통해서 그 배열의 수를 정해주고 for문을 통해 answer배열에 약수를 추가해주었다.
이때 for문은 낮은 수부터 탐색하기때문에 오름차순을 해줄 필요는 없다.
반응형