๋ฐ์ํ
https://www.acmicpc.net/problem/2003
๋ฌธ์
N๊ฐ์ ์๋ก ๋ ์์ด A[1], A[2], …, A[N] ์ด ์๋ค. ์ด ์์ด์ i๋ฒ์งธ ์๋ถํฐ j๋ฒ์งธ ์๊น์ง์ ํฉ A[i] + A[i+1] + … + A[j-1] + A[j]๊ฐ M์ด ๋๋ ๊ฒฝ์ฐ์ ์๋ฅผ ๊ตฌํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์์ค.
์ ๋ ฅ
์ฒซ์งธ ์ค์ N(1 ≤ N ≤ 10,000), M(1 ≤ M ≤ 300,000,000)์ด ์ฃผ์ด์ง๋ค. ๋ค์ ์ค์๋ A[1], A[2], …, A[N]์ด ๊ณต๋ฐฑ์ผ๋ก ๋ถ๋ฆฌ๋์ด ์ฃผ์ด์ง๋ค. ๊ฐ๊ฐ์ A[x]๋ 30,000์ ๋์ง ์๋ ์์ฐ์์ด๋ค.
์ถ๋ ฅ
์ฒซ์งธ ์ค์ ๊ฒฝ์ฐ์ ์๋ฅผ ์ถ๋ ฅํ๋ค.
ํ์ด
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int main() {
int n, m;
cin >> n >> m;
vector<int> v(n);
for(int i=0; i<n; i++) {
cin >> v[i];
}
int ans=0;
int tmp = v[0];
for(int start=0, end=0; end<n;) {
while(tmp>m && start<end) {
tmp -= v[start];
start++;
}
if(tmp==m) {
ans++;
}
end++;
tmp += v[end];
}
cout << ans;
return 0;
}
๋ฐ์ํ
'๐๏ธ ICPC Sinchon > Two Pointer' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[BOJ][C++] ๋ฐฑ์ค 7795๋ฒ: ๋จน์ ๊ฒ์ธ๊ฐ ๋จนํ ๊ฒ์ธ๊ฐ (0) | 2024.08.19 |
---|---|
[BOJ][C++] ๋ฐฑ์ค 2467๋ฒ: ์ฉ์ก (0) | 2024.08.18 |
[BOJ S1][C++] ๋ฐฑ์ค 2531๋ฒ: ํ์ ์ด๋ฐฅ (0) | 2022.10.20 |
๋ฐฑ์ค 10025๋ฒ: ๊ฒ์ผ๋ฅธ ๋ฐฑ๊ณฐ (0) | 2022.10.18 |
๋ฐฑ์ค 1644๋ฒ: ์์์ ์ฐ์ํฉ (0) | 2022.10.18 |