
이번 문제는 그냥 이중 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;
}
}

이번 문제는 그냥 이중 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; } }