첫 문제는 연속된 자연수의 합이 n이 되는 경우의 수를 구하는 문제였다. 미리 0~i까지 숫자들의 합을 구해놓은 뒤 슬라이딩 윈도 기법을 사용하여 s와 e를 두고 arr[s] - arr[e]를 하게 되면 e+1 ~ s까지의 합이 구해진다. 이 값이 n 이 되면 숫자를 늘리고 e를 증가시킨다. 만약 숫자가 작다면 e를 늘리고 숫자가 n보다 크다면 s를 늘려 숫자를 n과 가까워지도록 한다. #include #include #include using namespace std; int arr[10001] = {0}; int solution(int n) { int answer = 0; int s=0,e=0,pivot; for(int i=1;i