[프로그래머스] 약수 구하기
카테고리 : 컴퓨터 공학
태그: programmers · Code Refactoring · 참고 할 만한 다른 사람의 코드 · 코딩 기초 트레이닝 · 프로그래머스 · 코딩테스트 연습 · JavaScript · 약수 구하기 · js 약수 구하기
태그: programmers · Code Refactoring · 참고 할 만한 다른 사람의 코드 · 코딩 기초 트레이닝 · 프로그래머스 · 코딩테스트 연습 · JavaScript · 약수 구하기 · js 약수 구하기
문제 설명
정수 n
이 매개변수로 주어질 때, n
의 약수를 오름차순으로 담은 배열을 return하도록 solution 함수를 완성해주세요.
제한사항
• 1 ≤ n
≤ 10,000
입출력 예
n | result |
---|---|
24 | [1, 2, 3, 4, 6, 8, 12, 24] |
29 | [1, 29] |
입출력 예 설명
입출력 예 #1
- 24의 약수를 오름차순으로 담은 배열 [1, 2, 3, 4, 6, 8, 12, 24]를 return합니다.
입출력 예 #2
- 29의 약수를 오름차순으로 담은 배열 [1, 29]를 return합니다.
나의 풀이
function solution(n) {
let result = [];
for (let i = 1; i <= n; i++) {
if (n % i === 0) result.push(i);
}
return result;
}
나의 두번째 풀이(Code Refactoring)
function solution(n) {
let result = [];
let divisor = 1;
while (divisor <= n) {
if (n % divisor === 0) {
result.push(divisor);
}
divisor++;
}
return result;
}
// result를 결과값의 빈배열 추가
// divisor은 약수
// 약수는 인수 만큼 카운트하고 인수로 나누었을때 0이 되는 것들이 약수이다
참고 할 만한 다른 사람의 코드
function solution(n) {
return new Array(n)
.fill(1)
.map((v, i) => v + i)
.filter((elem) => !(n % elem));
}
// Array fill로 푸는 방법