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)이면
- 반환
- 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