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