문제접근
•
덧셈을 시작할 수의 인덱스를 결정하는 반복문 하나와 그 시작하는 수부터 조건을 만족하는 녀석들을 카운트하는 반복문으로 정답을 이끌어냄
•
시작하는 수가 바로 조건을 만족하면 다음 인덱스로 넘어감
•
조건을 만족하지 않으면 그 다음 인덱스부터 하나하나 더해가면서 조건에 맞게 분기 설정
놓쳤던 부분
코드
2176 KB
40 ms
#include <iostream>
#include <vector>
int n, m;
std::vector<int> a;
void input_setting()
{
std::ios_base::sync_with_stdio(false);
std::cin.tie(0);
std::cout.tie(0);
}
void input()
{
std::cin >> n >> m;
a.resize(n + 1);
for (int i = 1; i <= n; i++)
std::cin >> a[i];
}
void solution()
{
int check;
int count = 0;
long long sum;
for (int i = 1; i <= n; i++)
{
sum = a[i];
if (sum == m)
{
++count;
continue ;
}
check = i + 1;
while (check <= n)
{
sum += a[check];
if (sum < m)
{
++check;
continue ;
}
else if (sum == m)
++count;
break ;
}
}
std::cout << count;
}
int main(void)
{
input_setting();
input();
solution();
return (0);
}
C++
복사