[Level 1] 약수의 합
글 작성자: NoHack
728x90
문제 설명
정수 n을 입력받아 n의 약수를 모두 더한 값을 리턴하는 함수, solution을 완성해주세요.
제한 조건
- n은 0 이상 3,000 이하인 정수입니다.
문제 풀이
const toList = (n) => {
const list = [];
for (let i = 1; i <= n; i++) {
list.push(i);
}
return list;
};
const solution = (n) => {
return toList(n)
.filter((v) => n % v === 0)
.reduce((a, b) => a + b, 0);
};
const inputs = [12, 5];
inputs.forEach((input) => console.log(solution(input)));
어떤 수의 약수라 함은 자기 자신과 자신의 값보다 작은 수들 중 자신을 나누어 떨어지게 하는 수입니다. 저는 자바스크립트스럽게 처리하기 위해 toList 함수를 추가로 구현하여 1부터 n까지 정수를 담은 배열을 반환하도록 했습니다. 이렇게 만든 배열에는 filter 메소드를 사용하여 각 요소를 순회하면서, n을 나누어 떨어지게 할 수 있는 요소만 최종 배열에 담았습니다. filter는 조건이 참인 요소만 모아 배열을 만드는 메소드입니다.
'📝 문제풀이 > 프로그래머스' 카테고리의 다른 글
[Level 1] 문자열을 정수로 바꾸기 (0) | 2022.02.25 |
---|---|
[Level 1] 시저 암호 (0) | 2022.02.25 |
[Level 1] 이상한 문자 만들기 (0) | 2022.02.25 |
[Level 1] 자릿수 더하기 (0) | 2022.02.25 |
[Level 1] 자연수 뒤집어 배열로 만들기 (0) | 2022.02.25 |
댓글
이 글 공유하기
다른 글
-
[Level 1] 문자열을 정수로 바꾸기
[Level 1] 문자열을 정수로 바꾸기
2022.02.25 -
[Level 1] 시저 암호
[Level 1] 시저 암호
2022.02.25 -
[Level 1] 이상한 문자 만들기
[Level 1] 이상한 문자 만들기
2022.02.25 -
[Level 1] 자릿수 더하기
[Level 1] 자릿수 더하기
2022.02.25