May 18, 2021 ( last updated : May 18, 2021 )
투 포인터
알고리즘
https://github.com/sneakstarberry/
[백준] 2003번 수들의 합2
low, high 두 수를 통해서 배열 상에서 더해주는 값들의 시작 점과 끝 지점을 표현해 준다. 하나씩 이동하면서 배열 내의 값들을 더하거나 빼면서 경우의 수를 카운트 해준다.
#include <iostream>
using namespace std;
int main() {
ios_base::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
int N, M, i;
int l = 0, h = 0, cnt = 0, sum = 0;
int arr[10000];
cin >> N >> M;
for (i = 0; i < N; i++) {
cin >> arr[i];
}
while (1) {
if (sum >= M)
sum -= arr[l++];
else if (h == N)
break;
else
sum += arr[h++];
if (sum == M)
cnt++;
}
cout << cnt;
return 0;
}
Originally published May 18, 2021
Latest update May 18, 2021
Related posts :