Data Structure & Algorithm
[알고리즘-JS] 투 포인터 - 연속 부분 수열 합이 M 이하인 경우
fnow
2022. 5. 3. 22:04
반응형
문제
N개의 숫자로 이루어진 수열이 있습니다.
연속 부분 수열의 합이 M 이하가 되는 경우가 몇 번인지 출력하시오.
입력 예제
6 4
1 3 1 1 2 1
출력 예제
13
풀이
function solution(n, m, a) {
let answer = lt = rt = sum = 0;
for (let rt = 0; rt < a.length; rt++) {
// 자기 자신
sum += a[rt];
// sum이 m보다 커졌을 때, lt 값 빼고 lt++
while(sum > m) {
sum -= a[lt++];
}
answer += (rt - lt + 1);
}
return answer;
}
반응형