이번 문제는 그냥 이중 for 문으로 풀면 효율성에서 에러가 나고 포인터 방식을 사용해서 풀어야지 되는 문제이다.
start 값과 end 값의 처리를 잘 하면 풀 수 있는 문제였다!
class Solution {
public static int solution(int n) {
int answer = 0;
int start = 1;
int end = 1;
int sum = 1;
while (start <= n) {
if (sum < n) {
end += 1;
sum += end;
} else if ( sum == n ){
answer += 1;
start += 1;
sum -= start - 1;
} else {
start += 1;
sum -= start - 1;
}
}
return answer;
}
}