小数点の検索(プログラマ)
7208 ワード
リンクテキスト
一桁と書かれた紙片が散らばっている.ばらばらの紙切れを貼って、いくつかの小数点を作ることができることを見たいです.
各紙片の数字の文字シリアル番号を指定すると、紙片で作成できるいくつかの数を返すための解法関数を完了します.
せいげんじょうけん
numbersは、長さが1または7未満の文字列です.
numbersは0から9まで数字で構成されています.
「013」とは、0から3の数字の紙切れが散らばっていることを意味します.
文字列を優先リストに変換して、組み合わせを検索し、小数点以下であるかどうかを判断します.
ここで重要なのは,配列の使い方とans判断をしっかりと行うことである.
問題を理解する
一桁と書かれた紙片が散らばっている.ばらばらの紙切れを貼って、いくつかの小数点を作ることができることを見たいです.
各紙片の数字の文字シリアル番号を指定すると、紙片で作成できるいくつかの数を返すための解法関数を完了します.
せいげんじょうけん
numbersは、長さが1または7未満の文字列です.
numbersは0から9まで数字で構成されています.
「013」とは、0から3の数字の紙切れが散らばっていることを意味します.
私の理解
文字列を優先リストに変換して、組み合わせを検索し、小数点以下であるかどうかを判断します.
Python
from itertools import permutations
def check(num):
if num <=1:
return False
for i in range(2,int(num**(1/2))+1):
if num % i ==0:
return False
return True
def solution(numbers):
if len(numbers) ==1:
if check(int(numbers)):
return 1
return 0
items = [x for x in numbers]
ans =[]
ans.extend(items)
for i in range(2,len(numbers)+1):
ans.extend(list(map(''.join, permutations(items,i))))
ans = [x for x in ans if x !='0']
ans = [int(x) if x[0] != "0" else int(x[1:]) for x in ans]
ans = list(set(ans))
ans.sort()
count =0
for ele in ans:
if check(ele):
print(ele)
count +=1
return count
checkは小数を識別する方法を提供する(%%で自分のルートを試すことができる).ここで重要なのは,配列の使い方とans判断をしっかりと行うことである.
Reference
この問題について(小数点の検索(プログラマ)), 我々は、より多くの情報をここで見つけました https://velog.io/@happyfran67/소수-찾기프로그래머스テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol