No Rules Rules

수들의 합 2 (feat. 백준, 2003번) 본문

생활/코테

수들의 합 2 (feat. 백준, 2003번)

개발하는 완두콩 2022. 11. 2. 13:01
728x90
반응형

수들의 합 2
https://www.acmicpc.net/problem/2003

 

2003번: 수들의 합 2

첫째 줄에 N(1 ≤ N ≤ 10,000), M(1 ≤ M ≤ 300,000,000)이 주어진다. 다음 줄에는 A[1], A[2], …, A[N]이 공백으로 분리되어 주어진다. 각각의 A[x]는 30,000을 넘지 않는 자연수이다.

www.acmicpc.net

 

// woohyeon.kim
// kim519620.tistory.com
#include <iostream>
using namespace std;
int main() {
	ios::sync_with_stdio(false), cin.tie(NULL);
    register int N, M, arr[10000], s = 0, e = 0, sum = 0, ans = 0;
    cin >> N >> M;
    for(register int n = 0; n < N; ++n)
        cin >> arr[n];
    sum = arr[0];
    while (e < N){
        if(sum == M)
            ++ans;
        if(sum >= M)
            sum -= arr[s++];
        else
            sum += arr[++e];
    }
    cout << ans;
	return 0;
}
// *&)*@*

 

반응형
  1. 투포인트 유형의 문제입니다.
  2. 시작점과 종료점을 두고 배열의 인덱스값을 누적하여 더하거나 빼서 조건에 해당하는지를 확인하는 방식입니다.
  3. 즉, 시작점부터 종료점까지 모든 배열의 인덱스값을 참조하지 않고 누적값만으로 조건을 확인하는 알고리즘입니다.
728x90
반응형
Comments