-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathSumOfDivisors.java
More file actions
36 lines (33 loc) · 944 Bytes
/
SumOfDivisors.java
File metadata and controls
36 lines (33 loc) · 944 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
package dev.solar.level1;
import java.util.HashSet;
public class SumOfDivisors {
public int solution(int n) {
int sum = 0;
for (int i = 1; i <= n/2; i++) {
if (n%i == 0) {
sum += i;
}
}
return sum+n;
}
// 부족한 풀이
public int solution2(int n) {
if ( n==1 ) return n;
int sum = 0;
int middleN = n/2;
HashSet<Integer> divisors = new HashSet();
for (int i = 1; i <= middleN; i++) {
if (n%i == 0) {
divisors.add(i);
divisors.add(n/i);
}
}
for ( int num : divisors) {
sum += num;
}
return sum;
}
}
/*
* for문을 n/2까지 돌리는 건 생각했는데, 괜히 중복을 없애겠다고 HashMap 쓰고, 몫, 나누기를 생각함.
* 그냥 i를 더해주고 마지막에 sum에 n을 더해주면 된다.*/