판다꼬마 2023. 1. 13. 18:48
728x90

문제

입력

  • 첫째 줄에 N(1≤N≤100,000), M(1≤M≤100,000,000)이 주어진다. 수열의 원소값은 1,000을 넘지 않는 자연수이다.

 

 

출력

첫째 줄에 경우의 수를 출력한다.

 

입력 예시

5 5
1 3 1 2 3

출력 예시

10

풀이 방법

 

내 코드

<html>
<head>
    <meta charset="UTF-8">
    <title>출력결과</title>
</head>
<body>
<script>

    const sol= (n,a) =>{
        let sum=0;
        let answer=0;
        let lt=0;

        for (let rt=0; rt<a.length; rt++){
            sum+=a[rt];
            console.log(sum)


            while(sum>n) {
                sum -= a[lt++]
            }
            answer+=(rt-lt+1)
            }




        return answer
    }
    let a=[1, 3, 1, 2, 3];
    console.log(sol(5, a));
</script>
</body>
</html>

Solution

<html>
    <head>
        <meta charset="UTF-8">
        <title>출력결과</title>
    </head>
    <body>
        <script>
            function solution(m, arr){
                let answer=0, sum=0, lt=0;
                for(let rt=0; rt<arr.length; rt++){
                    sum+=arr[rt];
                    while(sum>m){
                        sum-=arr[lt++];
                    }
                    answer+=(rt-lt+1);
                }               
                return answer;
            }
            
            let a=[1, 3, 1, 2, 3];
            console.log(solution(5, a));
        </script>
    </body>
</html>

느낌점

 

728x90