Tech for good

[Leetcode/Sliding Window] 713. Subarray Product Less Than K 본문

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 값을 반환.