プログラマSummer/Winter Coding(~218)-小数を作成
https://programmers.co.kr/learn/courses/30/lessons/12977
問題の説明
与えられた数字のうち3つの数字を小数に加算すると、個数を求めてみます.数値を持つ配列numsをパラメータとする場合は、solution関数を完了してnumsの3つの異なる数値の小数を返します.
せいげんじょうけん
numsに含まれる数字の個数は3個または50個を超えない.
numsの各要素は1000より大きい自然数であり、重複する数字は含まれていない.
に答える
def solution(nums):
answer = 0
for num1 in range(len(nums)-2):
for num2 in range(num1+1, len(nums)-1):
for num3 in range(num2+1, len(nums)):
isPrime = True
sum = nums[num1] + nums[num2] + nums[num3]
if sum % 2 == 0:
continue
for i in range(int(sum/2)-1 if int(sum/2) % 2 == 0 else int(sum/2), 2, -2):
if sum % i == 0:
isPrime = False
break
if isPrime:
answer += 1
return answer
他人の解答
from itertools import combinations
# 콤비네이션 함수로 3개를 뽑아온다 a에
def solution(nums):
answer = 0
for a in combinations(nums, 3):
sumNum = sum(a) # 다 더한걸 가지고
isPrime = True
for i in range(2, sumNum): # 하나씩 그냥 다 검사함
if sumNum % i == 0:
isPrime = False
break
if isPrime:
answer += 1
return answer
Reference
この問題について(プログラマSummer/Winter Coding(~218)-小数を作成), 我々は、より多くの情報をここで見つけました https://velog.io/@whanhee97/프로그래머스-SummerWinter-Coding2018-소수-만들기テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol