Programmers-小数点を検索(Python)
問題の説明
一桁と書かれた紙片が散らばっている.ばらばらの紙切れを貼って、いくつかの小数点を作ることができることを見たいです.
各紙片の数字の文字シリアル番号を指定すると、紙片で作成できるいくつかの数を返すための解法関数を完了します.
せいげんじょうけん
I/O例
numbersreturn"17"3"011"2
I/O例説明
例1
[1,7]小数[7,17,71]を作成できます.
例2
[0,1,1]は小数点を作成することができる[1101].
ハーモニー from itertools import permutations
import math
def check(n):
k = math.sqrt(n)
if n < 2:
return False
for i in range(2, int(k)+1):
if n % i == 0:
return False
return True
def solution(numbers):
answer = []
for k in range(1, len(numbers)+1):
perlist = list(map(''.join, permutations(list(numbers), k)))
for i in list(set(perlist)):
if check(int(i)):
answer.append(int(i))
answer = len(set(answer))
return answer
numbers = "17"
print(solution(numbers)) # 결과 예 : 3
解法
1)checkという関数を作成することで小数を判定する.ここで数学sqrtを用いたのは,平方数が小数ではないため,それによって判定される.
2)配列によりすべての場合の数字を作成し判定する.しかし,ここで重複する数が発生し,setに早めに減少すると,速度が大幅に速くなる.
3)答えにすべての小数点を入れて長さを印刷すると正解が得られます.
📝 結果
😃 に感銘を与える
from itertools import permutations
import math
def check(n):
k = math.sqrt(n)
if n < 2:
return False
for i in range(2, int(k)+1):
if n % i == 0:
return False
return True
def solution(numbers):
answer = []
for k in range(1, len(numbers)+1):
perlist = list(map(''.join, permutations(list(numbers), k)))
for i in list(set(perlist)):
if check(int(i)):
answer.append(int(i))
answer = len(set(answer))
return answer
numbers = "17"
print(solution(numbers)) # 결과 예 : 3
😃 に感銘を与える
👍 Irishのすべてのコードを表示
-> Irish Github
Reference
この問題について(Programmers-小数点を検索(Python)), 我々は、より多くの情報をここで見つけました
https://velog.io/@irish/Programmers-소수-찾기Python
テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol
Reference
この問題について(Programmers-小数点を検索(Python)), 我々は、より多くの情報をここで見つけました https://velog.io/@irish/Programmers-소수-찾기Pythonテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol