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

Python에서 과반 득표를 한 후보자의 ID를 찾는 프로그램

<시간/>

n 값을 포함하는 nums라는 숫자 목록이 있다고 가정합니다. 여기서 각 숫자는 후보자에 대한 투표를 나타냅니다. floor(n/2)개 이상의 득표수를 가진 후보자의 id를 찾아야 하고, 과반수 득표가 없으면 -1을 반환합니다.

따라서 입력이 nums =[6, 6, 2, 2, 3, 3, 3, 3, 3]과 같으면 출력은 3이 됩니다.

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

  • l :=숫자 크기
  • count :=각 개별 숫자와 해당 발생을 포함하는 지도
  • count의 각 숫자 i와 발생 j에 대해 수행
    • j> (l / 2)이면
      • 반환
  • 반환 -1

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

예시

class Solution:
   def solve(self, nums):
      l = len(nums)
      from collections import Counter
      count = Counter(nums)
      for i, j in count.items():
         if j > (l // 2):
            return i
      return -1
ob = Solution()
nums = [6, 6, 2, 2, 3, 3, 3, 3, 3]
print(ob.solve(nums))

입력

[6, 6, 2, 2, 3, 3, 3, 3, 3]

출력

3