https://www.acmicpc.net/problem/2003
문제 간단 정리
문제 해결 방법
전체 코드
#include<vector>
#include <iostream>
using namespace std;
typedef long long ll;
int main()
{
ll N, M;
vector<ll> cnt;
cin >> N >> M;
for (int i = 0; i < N; i++) {
ll input;
cin >> input;
cnt.push_back(input);
}
cnt.push_back(0); //인덱스 때문에 하나 추가
ll count = 0;
ll start = 0; ll end=0;
ll sum = cnt[start];
while (1) {
if (sum > M) { //합이 클때
sum -= cnt[start];
if (start == end) {
end++;
sum += cnt[end];
}
start++;
}
else if (sum < M) { //합이 적을때
end++;
sum += cnt[end];
}
else if (sum == M) {
count++;
sum += cnt[++end];
}
if (end == N) break;
}
cout << count;
}
'[백준] > C++' 카테고리의 다른 글
백준 11866번 요세푸스 문제 0 [C++] (0) | 2023.08.04 |
---|---|
백준 2751번 수 정렬하기 2 [C++] (0) | 2023.08.04 |
백준 14246번 K보다 큰 구간 [C++] (0) | 2023.08.03 |
백준 17352번 여러분의 다리가 되어 드리겠습니다! [C++] (0) | 2023.07.19 |
백준 4920번 테트리스 게임 [C++] (0) | 2023.07.19 |