문제 설명
정수 n이 매개변수로 주어질 때, n의 약수를 오름차순으로 담은 배열을 return하도록 solution 함수를 완성해주세요.
제한사항
- 1 ≤ n ≤ 10,000
풀이
const solution = (n) =>
new Array(n)
.fill(0)
.map((el, idx) => n % (idx+1) === 0 ? (idx + 1) : el)
.filter(el => el !== 0)
- 배열을 리턴해야 하므로 new Array()로 신규로 배열을 생성해주는데, 우선 원소는 n개만큼 생성해준다.
- 각 원소들이 비어있으므로, 0을 할당해준다. 이러면 n개의 0이 들어있는 배열이 만들어진다.
- map() 매서드를 이용하여 n을 idx+1(idx는 0부터 시작 하므로)로 나눈 나머지가 0인 경우(n의 약수인 경우) idx+1을 리턴해주고, 그외의 경우 기존의 원소(0)을 리턴해준다. *0은 약수가 될 수 없다.
이러면 n의 약수를 제외하면 0인 배열이 만들어진다. - filter() 매서드를 이용하여 0인 원소들을 제외하고 리턴해주면 끝.