정수 n이 매개변수로 주어질 때, n의 약수를 오름차순으로 담은 배열을 return하도록 solution 함수를 완성해주세요.
n result
24 [1, 2, 3, 4, 6, 8, 12, 24]
29 [1, 29]
입출력 예 #1
입출력 예 #2
function solution(n) {
var answer = [];
for(let i =1;i<=n;i++){
if(n%i==0){
answer.push(i);
}
}
return answer;
}
나머지 0일 때마다 push
function solution(n) {
return Array(n).fill(0).map((v, index) => v+index+1)
.filter((v) => n%v===0);
}
n칸의 0으로 초기화된 배열을 만들고 map으로 각 칸의 인덱스 +1의 값을 넣은 뒤에 다시 나머지가 0인 것만 걸러냄.
function solution(n) {
let s = new Set();
for (let i = 1; i <= Math.sqrt(n); i++) {
if (n%i === 0) {
s.add(i);
s.add(n/i);
}
}
return [...s].sort((a,b)=>a-b);
}
n의 제곱근을 기준으로 양 끝에서 가운데로 오면서 약수 배열에 추가하는 모양.
마지막에 정렬해줌. 복잡도는 O(n^(1/2))인 듯.