각 숫자가 후보자에 대한 투표를 나타내는 nums라는 숫자 목록이 있다고 가정합니다. floor(n/3)개 이상 득표한 후보자의 ID를 내림차순으로 찾아야 합니다.
따라서 입력이 nums =[3, 2, 6, 6, 6, 6, 7, 7, 7, 7, 7]과 같으면 출력은 [6, 7]이 됩니다. 투표율.
이 문제를 해결하기 위해 다음 단계를 따릅니다. −
- ans :=새로운 빈 세트
- 목록 번호 정렬
- i :=0
- n :=숫자 크기
- i <숫자의 크기인 동안 do
- nums에서 nums[i]가 발생하면> (n / 3),
- nums[i]를 ans에 삽입
- 나는 :=나는 + (n / 3)
- nums에서 nums[i]가 발생하면> (n / 3),
- 정렬된 순서로 반환
이해를 돕기 위해 다음 구현을 살펴보겠습니다. −
예시
class Solution: def solve(self, nums): ans = set([]) nums.sort() i = 0 n = len(nums) while i < len(nums): if nums.count(nums[i]) > n // 3: ans.add(nums[i]) i += n // 3 return sorted(list(ans)) ob = Solution() nums = [3, 2, 6, 6, 6, 6, 7, 7, 7, 7, 7] print(ob.solve(nums))
입력
[3, 2, 6, 6, 6, 6, 7, 7, 7, 7, 7]
출력
[6, 7]