1D1A - One Day One Algorithm
문제 - 약수의 합
어떤 수를 입력받아 그 수의 약수를 모두 더한 수 sumDivisor 함수를 완성해 보세요. 예를 들어 12가 입력된다면 12의 약수는 [1, 2, 3, 4, 6, 12]가 되고, 총 합은 28이 되므로 28을 반환해 주면 됩니다.
import java.util.ArrayList;
import java.util.List;
class SumDivisor {
public int sumDivisor(int num) {
int answer = 0;
List<Integer> arr = new ArrayList<>();
for (int i = 1; i<=num; i++) {
if (num % i == 0) {
arr.add(i);
}
}
for (int i = 0; i < arr.size(); i++) {
answer = answer + arr.get(i);
}
return answer;
}
public static void main(String[] args) {
SumDivisor c = new SumDivisor();
System.out.println(c.sumDivisor(12));
}
}
굳이 필요 없는 List 를 만들었다. 그리고 for 문이 2번 사용되었다.
다른 사람들 방식을 참고.
public int sumDivisor(int num) {
int answer = 0;
for (int i = 1; i <= num; i++) {
if (num % i == 0) {
answer = answer + i;
}
}
return answer;
}