-
[프로그래머스 - 입문] 소인수분해 - JAVA프로그래머스 문제풀이/Java 문제풀이 2022. 11. 22. 16:41728x90
문제 설명
소인수분해란 어떤 수를 소수들의 곱으로 표현하는 것입니다. 예를 들어 12를 소인수 분해하면 2 * 2 * 3 으로 나타낼 수 있습니다. 따라서 12의 소인수는 2와 3입니다. 자연수 n이 매개변수로 주어질 때 n의 소인수를 오름차순으로 담은 배열을 return하도록 solution 함수를 완성해주세요.
제한사항- 2 ≤ n ≤ 10,000
입출력 예nresult12 [2, 3] 17 [17] 420 [2, 3, 5, 7]
입출력 예 설명입출력 예 #1
- 12를 소인수분해하면 2 * 2 * 3 입니다. 따라서 [2, 3]을 return합니다.
입출력 예 #2
- 17은 소수입니다. 따라서 [17]을 return 해야 합니다.
입출력 예 #3
- 420을 소인수분해하면 2 * 2 * 3 * 5 * 7 입니다. 따라서 [2, 3, 5, 7]을 return합니다.
public int[] solution(int n) { int[] answer ={}; List<Integer> list = new ArrayList<Integer>(); int i = 2; while(n >= 2){ if(n%i ==0){ list.add(i); n/=i; } else{ i++; } } answer = list.stream().distinct().mapToInt(Integer::intValue).toArray(); return answer; }
728x90'프로그래머스 문제풀이 > Java 문제풀이' 카테고리의 다른 글
[프로그래머스 - 입문] 배열 원소의 길이 - JAVA (0) 2022.11.23 [프로그래머스 - 입문] 컨트롤 제트 - JAVA (0) 2022.11.23 [프로그래머스 - 입문] 숨어있는 숫자의 덧셈 (1) - JAVA (0) 2022.11.22 [프로그래머스 - 입문] 문자열 정렬하기 (1) - JAVA (0) 2022.11.22 [프로그래머스 - 입문] 모음 제거 - JAVA (1) 2022.11.22