숫자로 이루어진 배열인 nums를 인자로 전달합니다.
숫자중에서 과반수(majority, more than a half)가 넘은 숫자를 반환해주세요.
예를 들어,
nums = [3,2,3]
return 3
nums = [2,2,1,1,1,2,2]
return 2
def more_than_half(nums):
harf_n = len(nums) // 2
set_list = set(nums)
for i in set_list:
if nums.count(i) >= harf_n:
return i
과반수의최소 숫자를 정하고, 리스트를 셋으로 설정한다음
셋리스트를 for문으로 돌리면서 count 함수를 이용하여, 과반수의 숫자를 구하였다.
def more_than_half(nums):
majority_count = len(nums)//2
for num in nums:
count = sum(1 for elem in nums if elem == num)
if count > majority_count:
return num
여기도 마찬가지로 과반수의 최소숫자를 설정하였다.
그치만, for문안에 제너레이터와 sum 함수를이용하여 num을 구했다.