작성
·
136
0
sum이 주어진 값(m)을 초과하였을 때 sum에서 lt(제 코드에서는 start) 인덱스 값을 빼주는 것이 아니라 포인터와 sum을 초기화하면서 진행하였는데 이런 코드는 효율성이 떨어질까요? 또한 제 코드에 대한 반례가 있는지도 궁금합니다.
<script>
function solution(m, arr) {
let answer = 0;
let start = end = 0;
let sum = 0;
while (start < arr.length) {
while (end < arr.length && sum < m) {
sum += arr[end++];
}
if (sum === m) {
answer++;
}
start++;
end = start;
sum = 0;
}
return answer;
}
let a = [1, 2, 1, 3, 1, 1, 1, 2];
console.log(solution(6, a));
</script>