[백준] 2003 수들의 합2

May 18, 2021 ( last updated : May 18, 2021 )
투 포인터 알고리즘

https://github.com/sneakstarberry/


Abstract

[백준] 2003번 수들의 합2

[백준] 2003번 수들의 합2

백준 2003번

알고리즘 유형

풀이방법

low, high 두 수를 통해서 배열 상에서 더해주는 값들의 시작 점과 끝 지점을 표현해 준다. 하나씩 이동하면서 배열 내의 값들을 더하거나 빼면서 경우의 수를 카운트 해준다.

#include <iostream>
using namespace std;

int main() {
  ios_base::sync_with_stdio(0);
  cin.tie(0);
  cout.tie(0);

  int N, M, i;
  int l = 0, h = 0, cnt = 0, sum = 0;
  int arr[10000];

  cin >> N >> M;
  for (i = 0; i < N; i++) {
    cin >> arr[i];
  }

  while (1) {
    if (sum >= M)
      sum -= arr[l++];
    else if (h == N)
      break;
    else
      sum += arr[h++];

    if (sum == M)
      cnt++;
  }

  cout << cnt;

  return 0;
}

Originally published May 18, 2021
Latest update May 18, 2021

Related posts :

{# #}