Programmers-小数を作成(Python)



質問する


私は
  • の与えられた数字の中の3つの数字を足して小数の時の個数を求めたいです.数値を持つ配列numsをパラメータとする場合は、solution関数を完了してnumsの3つの異なる数値の小数を返します.
  • せいげんじょうけん

  • numsに含まれる数字は3つまたは50個を超えない.
  • numsの各要素は1000より大きい自然数であり、重複する数字は含まれていない.
  • I/O例


    numsresult[1,2,3,4]1[1,2,7,6,4]4

    I/O例説明


  • I/O例#1
  • [1,2,4]を使用して7を作成できます.

  • I/O例#2
  • [1,2,4]を使用して7を作成できます.
  • [1,4,6]を使用して11を作成できます.
  • [2,4,7]を使用して13を作成できます.
  • [4,6,7]を使用して17を作成できます.
  • ハーモニー

    #(1)
    
    import itertools
    import math
    
    def solution(nums):
        # (2)
        list_permutations = list(itertools.combinations(nums,3))
    
        # (3)
        store_sum_list = []
    
        #(4) 
        for value in list_permutations:
            sum_value = sum(value)
    
            check_prime = 0       
    
            for i in range(2, int(math.sqrt(sum_value) + 1)):
                if sum_value % i == 0:
                    check_prime += 1
    
                if check_prime == 1:
                    break
    
            if check_prime == 0:
                store_sum_list.append(sum_value)
    
        return len(store_sum_list)
    
    nums = [1,2,7,6,4]		
    print(solution(nums)) # 출력 예 : 4
  • (1):この問題はitertoolsを使用して解答します.特にitertoolsの組合せ方法を用いた.参考として、組合せ方法は、繰り返しの組合せを使用するために使用される.この問題は、与えられたリストから3つの数を抽出し、この3つの数を加えた値が小数であるかどうかによって結果値が異なります.
    単純な組み合わせであれば、1,2,3のように3つを選ぶと、組み合わせの数は8つになります.
    しかし、問題は、重複する値も1つずつカウントする必要はないので、異なる順序だけが必要で、結果は同じ組合せを必要としないため、重複する組合せを使用することである.
  • (2):list performations
  • .numsから3つの数字を抽出して繰り返し組み合わせた場合のリストがリストされています.
  • (3):組合せの和が少数である場合、この和を含むリストstore sum list
  • (4):リスト配列をfor文に変換し、各繰返し組合せ要素をsum value変数にマージして割り当てます.check primeはsum valueが小数であるか否かを判別するために宣言する.
    check primeが1の場合、sum valueは小数ではないのでbreakでfor文から終了し、sum valueが小数の場合はstore sum listにsum valueを添付します.最終的に得られたstore sumリストの長さを返します.
  • 📝 結果



    😃 に感銘を与える

  • 題を見たとき、組み合わせを思い出しました.幸いなことに、Pythonにはそれを実現できるitertoolsライブラリがあり、その中には組み合わせ()メソッドがあります.あなたのおかげで、問題はもっと解決しやすいです.後でitertoolsライブラリを勉強します.
  • 👍 Irishのすべてのコードを表示


    -> Irish Github