
나의 풀이
class Solution {
public int solution(int n) {
int answer = 0;
for(int i=1; i < n+1; i++){
if(n % i == 0){
answer += i;
}
}
return answer;
}
}
다른 사람의 풀이
class SumDivisor {
public int sumDivisor(int num) {
int answer = 0;
for (int i = 1; i <= num / 2; i++) {
if (num % i == 0) {
answer += i;
}
}
return answer + num;
}
}
num / 2보다 큰 수는 약수가 될 수 없기 때문에 num의 절반까지만 반복한다.
모든 약수의 합이므로 본인 num도 더함.
'알고리즘' 카테고리의 다른 글
| [프로그래머스] x만큼 간격이 있는 n개의 숫자(Java) (0) | 2024.10.31 |
|---|---|
| [프로그래머스] 나머지가 1이 되는 수 찾기(Java) (0) | 2024.10.30 |
| [프로그래머스] 평균 구하기(Java) (0) | 2024.10.28 |
| [프로그래머스] 자릿수 더하기(Java) * (0) | 2024.10.28 |
| [프로그래머스] 짝수와 홀수(Java) (0) | 2024.10.26 |