반응형
소인수분해
문제 설명
제한사항
입출력 예nresult
입출력 예 설명
소인수분해란 어떤 수를 소수들의 곱으로 표현하는 것입니다. 예를 들어 12를 소인수 분해하면 2 * 2 * 3 으로 나타낼 수 있습니다. 따라서 12의 소인수는 2와 3입니다. 자연수 n이 매개변수로 주어질 때 n의 소인수를 오름차순으로 담은 배열을 return하도록 solution 함수를 완성해주세요.
제한사항
- 2 ≤ n ≤ 10,000
입출력 예nresult
12 | [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합니다.
코드보기
더보기
using System;
using System.Linq;
using System.Collections.Generic;
public class Solution {
public int[] solution(int n) {
int[] answer = new int[] {};
List<int> arr = new List<int>();
for(var i=2; i<= n; i++)
{
while(n % i==0)
{
arr.Add(i);
n = n / i;
}
}
if(n != 1) arr.Add(n);
answer = arr.Distinct().ToArray();
return answer;
}
}
https://school.programmers.co.kr/learn/courses/30/lessons/120852
반응형
'dev > 코딩테스트' 카테고리의 다른 글
[프로그래머스] 햄버거 만들기 - 코딩테스트, c# (by Stack Data Type) (0) | 2022.11.04 |
---|---|
[프로그래머스] 옹알이 (1) - 코딩테스트, C# (0) | 2022.11.04 |
[프로그래머스] 진료 순서 정하기 - 코딩테스트, c# (랭킹) (0) | 2022.11.02 |
[프로그래머스] 피자 나눠 먹기 (2) -코딩테스트,c# (최대공약수, 최소공배수) (0) | 2022.11.01 |
[프로그래머스] 약수 구하기 - 코딩테스트, C# (0) | 2022.10.31 |