[JAVA/프로그래머스] 소인수분해

윤소영·2023년 4월 23일
0

JAVA

목록 보기
11/41

일단 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를 써주면 된다.

0개의 댓글