Search
Duplicate
📗

수들의 합 2

주차
15
문제번호
2003
언어
티어
실버
유형
투 포인터
nj_Blog
nj_상태
이해도
100%
풀이
사람
이해도 2
13 more properties

문제접근

덧셈을 시작할 수의 인덱스를 결정하는 반복문 하나와 그 시작하는 수부터 조건을 만족하는 녀석들을 카운트하는 반복문으로 정답을 이끌어냄
시작하는 수가 바로 조건을 만족하면 다음 인덱스로 넘어감
조건을 만족하지 않으면 그 다음 인덱스부터 하나하나 더해가면서 조건에 맞게 분기 설정

놓쳤던 부분

코드

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++
복사