글
프로그래머스 C# 소인수분해(Distinct, List, while,P,J)
프로그래밍
2023. 1. 2. 16:47
728x90
SMALL
using System;
using System.Collections.Generic;
using System.Linq;
public class Solution {
public int[] solution(int n) {
List<int> list = new List<int>();
for(int i=2;i<=n;i++)
{
while(n%i==0)
{
list.Add(i);
n = n/i; // list에 등록이 되었으니 나누어 주는 게 핵심인 듯.
}
}
int[] answer = list.Distinct().ToArray(); //중복되는 것들 삭제 한다.
return answer;
}
}
파이썬
/////////
def solution(n):
answer = []
d = 2
while d <= n:
if n % d == 0:
n /= d
if d not in answer:
answer.append(d)
else:
d += 1
return answer
////////
def solution(n):
k = 2
answer = []
while n>1:
if n%k==0:
answer.append(k)
while n%k==0:
n//=k
k+=1
return answer
자바
///////
import java.util.*;
class Solution {
public int[] solution(int n) {
List<Integer> factorList = new ArrayList<>();
for (int i = 2; i <= n; i++)
{
if (n % i == 0)
{
factorList.add(i);
while (n % i == 0)
{
n /= i;
}
}
}
int[] answer = factorList.stream().mapToInt(i -> i).toArray();
return answer;
}
}
import java.util.*;
class Solution {
public int[] solution(int n) {
List<Integer> list = new ArrayList<>();
int div = 2;
while(n > 1)
{
if(n%div==0)
{
if(!list.contains(div))
list.add(div);
n /= div;
continue;
}
div++;
}
int[] answer = new int[list.size()];
for(int i=0; i<answer.length; i++)
answer[i] = list.get(i);
return answer;
}
}
728x90
'프로그래밍' 카테고리의 다른 글
프로그래머스 C# 외계어 사전(replace, for, if문, P, J) (0) | 2023.01.03 |
---|---|
프로그래머스 C# 영어가 싫어요(string과 replace, long.Parse, P, J) (0) | 2023.01.02 |
프로그래머스 C# 잘라서 배열로 저장하기(for문의 활용, P, J) (0) | 2023.01.02 |
프로그래머스 C# 공 던지기(주기성 찾기, P, J) (0) | 2023.01.02 |
프로그래머스 C# 숨어있는 숫자의 덧셈(2) (48, int.TryParse, char.IsDigit,P,J) char int형 -'0' int형 char형 - 48 (0) | 2023.01.01 |