문제
이진 배열 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