과 일치하는 자연수의 연속합을 구하는 문제.
의 크기가 최대 이기 때문에 인 브루트포스로 구현해도 시간초과가 발생하지 않지만 투 포인터를 이용하면 더 빠르게 으로 해결가능하다.
https://school.programmers.co.kr/learn/courses/30/lessons/12924
cpp code
#include <string>
using namespace std;
int solution(int n) {
int answer = 0;
int l = 1, r = 1;
int sum = 1;
while (l <= r && r <= n) {
if (sum <= n) {
if (sum == n) answer++;
sum += ++r;
}
if (sum > n) sum -= l++;
}
return answer;
}