Level 1. 小数を作成
5134 ワード
03.小数を作る
コーディングテスト練習>Summer,Winter Coding(~218)>小数点の作成
https://programmers.co.kr/learn/courses/30/lessons/12977
問題の説明
与えられた数字のうち3つの数字を小数に加算すると、個数を求めてみます.数値を持つ配列numsをパラメータとする場合は、solution関数を完了してnumsの3つの異なる数値の小数を返します.
せいげんじょうけん
・numsの数字の個数は3個以上50個以下である.
・numsの各要素は1以上1000以下の自然数であり、重複する数字は含まれていない.
I/O例
nums = (1,2,3,4) result = 1
構想する
itertoolsのコンビネーションライブラリを使用して、与えられた数値の3つを加算し、リストを形成します.
リスト内の要素(リスト)の合計を2から要素値で除算します.
2-1. 分離が発生した場合は、次の要素に移動します.
2-2. 分離しない場合はresultを+1します.
解答方法
構想的な方法で解く
from itertools import combinations
def solution(nums):
count = 0
sums = itertools.combinations(nums,3)
for i in sums:
num = sum(i)
for j in range(2,num):
if num % j == 0:
break
else:
count +=1
return count
エラトステネスのふるい方法
from itertools import combinations
def prime_number(x):
answer = 0
for i in range(1,int(x**0.5)+1):
if x%i==0:
answer+=1
return 1 if answer==1 else 0
def solution(nums):
return sum([prime_number(sum(c)) for c in combinations(nums,3)])
Reference
この問題について(Level 1. 小数を作成), 我々は、より多くの情報をここで見つけました https://velog.io/@pear_min/ProgrammersLevel-1-소수-만들기テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol