프로그래머스 1단계 : 약수의 합
정수 n을 입력받아 n의 약수를 모두 더한 값을 리턴하는 함수, solution을 완성해주세요.
제한 사항
n은 0 이상 3000이하인 정수입니다.
나의 문제 풀이
첫 번째. 변수 ans에다가 0을 저장해줍니다.
두 번째. for문을 사용하며, if문 안에 나눈 값이 0이 됐을 때 점점 증가하는 방식으로 했습니다.
세 번째. 리턴으로 출력합니다.
function solution(n) {
let ans = 0;
for(let i=0; i<=n; i++){
if(n % i == 0)
ans = ans + i;
}
return ans;
}
다른 사람 문제 풀이
다른 분들의 풀이를 보다가 유독 짧아 눈에 띄었습니다.
봐도 뭐지..?하지만 재귀 + 삼향을 더하여 사용한 풀이입니다.
function solution(n, a=0, b=0) {
return n<=a/2?b:solution(n,a+1,b+=n%a?0:a);
}
'PRO' 카테고리의 다른 글
프로그래머스 1단계 : 정수 제곱근 판별 (0) | 2022.11.01 |
---|---|
프로그래머스 1단계 : 자연수 뒤집어 배열로 만들기 (0) | 2022.10.31 |
프로그래머스 1단계 : 자릿수 더하기 (0) | 2022.10.31 |
프로그래머스 1단계 : 짝수와 홀수 (0) | 2022.10.31 |
프로그래머스 1단계 : 평균 구하기 (0) | 2022.10.31 |
댓글