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

파이썬에서 과반수 투표를 얻은 후보자 목록을 작성하는 프로그램

<시간/>

각 숫자가 후보자에 대한 투표를 나타내는 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)
  • 정렬된 순서로 반환

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

예시

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]