Code Kata 2-2

4250 ワード

質問する


数値配列numsをパラメータとして渡します.
数字のうち半数を超える(多数、半を超える)数字を返してください.
たとえば、
nums = [3,2,3]
return 3

nums = [2,2,1,1,1,2,2]
return 2

家庭

nums配列の長さは、2より大きくなければならない.

に答える

def more_than_half(nums):
    # 아래 코드를 입력해주세요.
  majority = len(nums)//2
  count = dict()
  
  for i in nums:
    if i in count:
      count[i]+=1
    else:
      count[i] =1
      
  for key, value in count.items():
    if value >= majority:
      return key
print(more_than_half([2,2,1,1,1,2,2]))
  • multiの多数の変数で、全長を半分で割った値を指定します.
  • countというディックシャナを作ります.
  • 循環水により、記数器にnums配列の数字があれば1を加算し、なければ1を指定します.
    例えばnumsが[2,2,1]である場合、前の2はdict{2:1}であり、2番目の2はdict{2:2}であり、1はdict{2:2,1:1}である.
  • このようにするとキベルクラスが出現し,ベルクラス値が多数より大きいと対応するキーを返すことができる.