무지성 문제 풀이~^^
sum = 1 ~ i 까지의 합 (1 + 2 + 3 + ... + i)
➡️ 등차수열의 첫 번째 항
i = 등차
sum | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | ... | 21 | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
i = 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | |
i = 2 | 3 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | |||||||||
i = 3 | 6 | 1 | 1 | 1 | 1 | 1 | ||||||||||||
i = 4 | 10 | 1 | 1 | |||||||||||||||
i = 5 | 15 | 1 | ||||||||||||||||
i = 6 | 21 | 1 |
각 1 = n부터 연속한 i개의 합을 체크
i = 3일때
➡️ sum부터 시작해서 i 만큼의 등차를 가짐
class Solution {
public int solution(int n) {
int result = 0;
int sum = 0;
for (int i = 1; ; i++) {
sum += i;
if (sum > n) break;
if ((n - sum) % i == 0) result++;
}
return result;
}
}