반응형

 

문제)

 

정수 배열 nums와 정수 k가 주어지면, 연속적인 부분 배열의 모든 원소의 곱이 엄밀하게 k보다 작은 연속 부분 배열의 수를 반환.

 

문제 난이도 : 중

 

소요시간 및 풀이)

슬라이딩 윈도우를 활용해서 풀었다.

 

소요 시간 : 27분

 

정답 코드

    int numSubarrayProductLessThanK(vector<int>& nums, int k)
    {
        if (k <= 1) return 0;

        int count = 0;
        int product = 1;
        int left = 0;

        for (int right = 0; right < nums.size(); ++right) {
            product *= nums[right];

            while (product >= k) {
                product /= nums[left];
                ++left;
            }

            count += (right - left + 1);
        }

        return count;
    }
반응형