숫자로 이루어진 배열인 nums를 인자로 전달합니다.
숫자중에서 과반수(majority, more than a half)가 넘은 숫자를 반환해주세요.
예를 들어,
nums = [3,2,3]
return 3
nums = [2,2,1,1,1,2,2]
return 2
딕셔너리 형태로 {'숫자': '배열안에 존재하는 개수'} 만들기
result={}
for i in nums:
if i not in result:
result[i] = 1
불러온 숫자 i 가 '키'가 되고, 처음 카운트 된 것이나 마찬가지므로 존재하는 개수를 1(값)로 하여 아래와 같이 되도록 한다.
{i: 1}
else:
result[i] += 1
key가 i 인 값에 1을 더해준다.
if result[i] > len(nums) / 2:
return i
딕셔너리 result의 값이 절반이상이면 key인 해당숫자(i)를 반환한다.
for문이 끝나고도 반환되는 값이 없을 시 과반수인 숫자가 없는 것이므로 아래와 같은 텍스트를 반환하기로 했다.
return '과반수 없음'
def more_than_half(nums):
result={}
for i in nums:
if i not in result:
result[i] = 1
else:
result[i] += 1
if result[i] > len(nums) / 2:
return i
return '과반수 없음'