IT/Computer Science
[Leetcode/Sliding Window] 713. Subarray Product Less Than K
Diana Kang
2025. 3. 8. 00:20
- 슬라이딩 윈도우 반복 (for right in range(len(nums)))
- right 포인터를 이동하면서 새로운 숫자를 곱함.
- product *= nums[right] → 현재 부분 배열의 곱을 업데이트.
- 조건을 만족하지 않으면 left 이동 (while product >= k)
- 곱이 k 이상이면 left 포인터를 오른쪽으로 이동하여 곱을 줄임.
- product //= nums[left]: left가 가리키던 값을 나누어 곱을 감소.
- //= : 몫을 구하는 나눗셈 후 할당 연산자
- ex) a //= b -> a = a // b
- //= : 몫을 구하는 나눗셈 후 할당 연산자
- left += 1: left를 이동하여 윈도우 크기를 줄임.
- 가능한 부분 배열 개수 추가 (count += right - left + 1)
- (right - left + 1)는 현재 윈도우에서 만들 수 있는 부분 배열 개수.
- 예를 들어, left=1, right=3이면 [nums[1]], [nums[1,2]], [nums[1,2,3]] 이렇게 3개.
- 최종 count 반환
- 모든 부분 배열을 확인한 후 count 값을 반환.