목록 번호가 있고 두 개의 추가 값 k 및 target이 있다고 가정하고 크기가 k이고 평균 값 ≥ target인 하위 목록의 수를 찾아야 합니다.
따라서 입력이 nums =[1, 10, 5, 6, 7] k =3 target =6과 같으면 하위 목록 [1, 10, 7]의 평균 값이 6이고 출력은 2가 됩니다. [10, 5, 6]은 평균 7입니다.
이 문제를 해결하기 위해 다음 단계를 따릅니다.
- 대상 :=대상 * k
- 합계:=0, 응답:=0
- 각 인덱스 i와 숫자 n에 대해 다음을 수행합니다.
- i>=k이면
- 합계 :=합 - 숫자[i - k]
- 합계 :=합 + n
- i>=(k - 1) 이면
- 합계>=대상이면
- ans :=ans + 1
- 합계>=대상이면
- i>=k이면
- 반환
더 나은 이해를 위해 다음 구현을 살펴보겠습니다.
예시 코드
class Solution: def solve(self, nums, k, target): target *= k sum = 0 ans = 0 for i, n in enumerate(nums): if i >= k: sum -= nums[i - k] sum += n if i >= (k - 1): if sum >= target: ans += 1 return ans ob = Solution() nums = [1, 10, 5, 6, 7] k = 3 target = 6 print(ob.solve(nums, k, target))
입력
[1, 10, 5, 6, 7], 3, 6
출력
2