정수 n이 주어질 때, n의 모든 약수의 합을 반환하는 문제
n = 12 → 약수: 1, 2, 3, 4, 6, 12 → 합계: 28
n = 5 → 약수: 1, 5 → 합계: 6
약수는 n을 나눴을 때 나머지가 0인 수이다. 1부터 n까지 올라가면서 n % i == 0인 경우만 합산한다.
n = 12 일때
i=1 → 12 % 1 = 0 → 약수 ✅ answer=1
i=2 → 12 % 2 = 0 → 약수 ✅ answer=3
i=3 → 12 % 3 = 0 → 약수 ✅ answer=6
i=4 → 12 % 4 = 0 → 약수 ✅ answer=10
i=5 → 12 % 5 = 2 → 약수 ❌
i=6 → 12 % 6 = 0 → 약수 ✅ answer=16
i=12 → 12 % 12 = 0 → 약수 ✅ answer=28
구체적으로 정리한 풀이 흐름:
1부터 n까지 반복n % i == 0이면 약수 → answer에 누적 합산class Solution {
public int solution(int n) {
int answer = 0;
for (int i = 1; i <= n; i++) {
if (n % i == 0) {
answer += i;
}
}
return answer;
}
}
