일단 2부터 나누기를 해서 나눠지면 2로 한번 더 해보고 더 이상 나눠지지 않을때(나머지가 0이 아닐 때), 3으로 넘어가서 나눠본다.
즉, 2부터 1++을 해서 그 수를 저장을 해볼까나,,
문제
답안 코드
import java.util.ArrayList;
import java.util.List;
class Solution {
public int[] solution(int n) {
List<Integer> list = new ArrayList<>();
int i = 2;
int j = 0;
for(; i <= n; i++){
if(n % i == 0){
while(n % i == 0){
n /= i;
}
list.add(i);
}
}
int[] answer = new int[list.size()];
for(; j < list.size(); j++){
answer[j] = list.get(j);
}
return answer;
}
}
코드 풀이
항상 배열의 크기를 처음에 지정하기 애매한 문제들이 있는데 이럴때 list를 써주면 된다.