[programmers/CodingTest/Python]小数点を作成


問題の説明


与えられた数字のうち3つの数字を小数に加算すると、個数を求めてみます.数値を持つ配列numsをパラメータとする場合は、solution関数を完了してnumsの3つの異なる数値の小数を返します.

せいげんじょうけん

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

    nums		result
    [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を作成できます.

    方法


    素数を求めるisPrime関数を簡単に実現し,numsのすべての和を三重for文で求めて配列に保存し,格納した配列をisPrime関数のパラメータとしてTrueを返す際にresponseを増やして解決した.
    isPrime関数を記述して
  • が小数であるか否かを判別する.
    ->2入力したパラメータ-1に繰り返し、区切り記号がある場合はFalse、for文がある場合はTrueを返します.
  • sumを格納する結果配列を宣言します.
  • 3ではfor文によって可能なすべての和を求め、結果に含める.
  • isPrime関数は、
  • の結果の長さで繰り返し実行されます.
  • isPrime関数の結果が真であれば、答えを追加します.
  • の答えを返します.
  • solution.py

    def isPrime(sum):
        for i in range(2, sum):
            if sum % i == 0: return False
        return sum > 1
    
    def solution(nums):
        answer = 0
        result = []
        for i in range(len(nums)):
            for j in range(i+1, len(nums)):
                for k in range(j+1, len(nums)):
                    sum = nums[i] + nums[j] + nums[k]
                    result.append(sum)
        for i in result:
            if isPrime(i):
                answer += 1
            else:
                continue;
        return answer