start부터 end까지의 수를 더한 sum이 N과 같은 경우 찾기
sort
while(end!=N){
sum > N : sum -= start; start++; //큰 경우 작은 수를 빼 범위를 줄인다.
sum < N : end++; sum += end; //작은 경우 범위를 늘려 큰 수를 더한다.
sum==N : end++; sum += end; cnt++; //같은 경우 범위를 늘려 반복한다.
}
좋은수 : 주어진 숫자 배열에서 다른 두 수의 합으로 표현가능한 수
A[i]+A[j] > K : j--;
A[i]+A[j] < K : i++;
A[i]+A[j] == K : i++; j--; cnt++;
자기 자신을 제외한 다른 두 수의 합이어야 한다.
(하나의 수를 두 번 더해서도 안된다.)
if ( i != k && j != k ) result++; break; // k는 찾는 수 K의 index
else if ( i == k ) i++;
else if ( j == k ) j--;