문제
이진 배열 arr을 첫 번째 인수로, 숫자 target을 두 번째 인수로 취하는 JavaScript 함수를 작성해야 합니다.
우리의 함수는 배열 arr에 존재하는 하위 배열의 수를 세어야 하며, 그 요소의 합은 count와 같습니다. 마침내 이 개수를 반환해야 합니다.
예를 들어 함수에 대한 입력이
인 경우입력
const arr = [1, 0, 1, 0, 1]; const target = 2;
출력
const output = 4;
출력 설명
원하는 하위 배열이 다음과 같기 때문입니다.
[1,0,1][1,0,1,0] [0,1,0,1] [1,0,1]
예시
const arr = [1, 0, 1, 0, 1]; const target = 2; const countSubarrays = (arr = [], target = 1) => { const map = {} let sum = 0 let count = 0 for (const num of arr) { map[sum] = (map[sum] || 0) + 1 sum += num count += map[sum - target] || 0 } return count }; console.log(countSubarrays(arr, target));
출력
4