Computer >> 컴퓨터 >  >> 프로그램 작성 >> Python

Python에서 목록을 k보다 큰 크기의 엄격하게 증가하는 하위 목록으로 분할하는 프로그램

<시간/>

nums라는 숫자 목록과 또 다른 값 k가 있다고 가정하고 각 하위 목록의 길이가 ≥ k이고 엄격하게 증가하도록 목록을 하위 목록 목록으로 분할할 수 있는지 확인해야 합니다. 목록을 연속적으로 분할할 필요는 없습니다.

따라서 입력이 nums =[6, 7, 5, 10, 13] k =2와 같으면 분할이 [5, 6] 및 [7, 10, 13]이므로 출력은 True가 됩니다.

이 문제를 해결하기 위해 다음 단계를 따릅니다. −

  • c :=숫자와 그 개수의 요소를 포함하는 지도
  • max_count :=c의 모든 주파수의 최대값
  • max_count * k <=숫자의 크기인 경우 True 반환, 그렇지 않으면 false

예제(파이썬)

이해를 돕기 위해 다음 구현을 살펴보겠습니다. −

from collections import Counter
class Solution:
   def solve(self, nums, k):
      c = Counter(nums)
      max_count = max([v for k, v in c.items()])
      return max_count * k <= len(nums)
ob = Solution()
nums = [6, 7, 5, 10, 13]
k = 2
print(ob.solve(nums, k))

입력

[6, 7, 5, 10, 13], 2

출력

False