Notice
Recent Posts
Recent Comments
Link
반응형
공부혜옹
백준 2003번 수들의 합 2 본문
#include <iostream>
using namespace std;
#define MAX_N 10001
int n, m;
int a[MAX_N];
int ans;
int main()
{
ios::sync_with_stdio(false);
cin.tie(0); cout.tie(0);
cin >> n >> m;
for (int i = 0; i < n; i++)
{
cin >> a[i];
}
int left = 0, right = 0,now_Sum=a[0];
while (left <= right && right < n)
{
// 현재 구간의 합이 m과 같을 경우
// right += 1
if (now_Sum == m)
{
ans += 1;
right += 1;
now_Sum += a[right];
}
// 현재 구간의 합이 m보다 클 경우
else if (now_Sum > m)
{
now_Sum -= a[left];
left += 1;
// left가 right보다 커진 경우 바꿔준다
if (left > right && left < n)
{
right = left;
now_Sum = a[left];
}
}
// 현재 구간의 합이 m보다 작을 경우
else if (now_Sum < m)
{
right += 1;
now_Sum += a[right];
}
}
cout << ans << "\n";
return 0;
}
반응형
'공부합시다 > Algorithm' 카테고리의 다른 글
백준 1786 찾기 (0) | 2021.05.25 |
---|---|
백준 1644번 소수의 연속합 (0) | 2021.05.18 |
백준 1806번 부분합 (0) | 2021.05.18 |
백준 9661번 돌게임 7 (0) | 2021.05.11 |
백준 9660번 돌게임 6 (0) | 2021.05.11 |
Comments