문제
내가 작성한 정답
import java.util.*;
class Solution {
public int[] solution(int n) {
Set<Integer> set = new TreeSet<>();
int i = 1;
while (n>1){
i++;
if(n%i==0) {
set.add(i);
while (n%i==0) n = n/i;
}
}
return set.stream().mapToInt(a->a).toArray();
}
}
// 그냥 else쓰면 while 한 번 더 안써도 됨
import java.util.*;
class Solution {
public int[] solution(int n) {
Set<Integer> set = new TreeSet<>();
int i = 2;
while(n > 1){
if(n%i==0){
set.add(i);
n /=i;
}else i++;
}
return set.stream().mapToInt(a->a).toArray();
}
}다른 사람들의 정답
import java.util.LinkedHashSet;
class Solution {
public int[] solution(int n) {
LinkedHashSet<Integer> primeNumbers = new LinkedHashSet<>();
int i = 2;
while (n != 0 && i <= n) {
if (n % i == 0) {
primeNumbers.add(i);
n /= i;
} else {
i++;
}
}
// System.out.println(primeNumbers);
return primeNumbers.stream().mapToInt(Integer::intValue).toArray();
}
}Share article