Programmers-フルナビゲーション>小数点の検索
8573 ワード
説明する
まずソートと組合せを考えたが,それ以外の解法は考えられなかった.問題概念は完全に探索であり、一定の役割を果たした.2問目でしたが、1時間以上かかってしまい、結局答えられませんでした.
模範解答
Set APIを使用すると、要素を簡単に検索、追加、削除できます.特定の要素を探す方法は想像以上に難しく、Set apiに慣れれば利用できるところがたくさんあります.再帰関数を用いて問題を解決したが,この方法がアルゴリズム的に有効かどうかは疑問である.
function solution(numbers) {
var answer = 0;
var n = numbers.split('');
var nums = new Set()
combi(n,'');
function combi(a, s) {
if (s.length > 0) {
if (nums.has(Number(s))=== false) {
nums.add(Number(s));
console.log(Number(s))
if (chkPrime(Number(s))) {
answer++;
}
}
}
if (a.length > 0) {
for (var i = 0; i< a.length; i++) {
var t = a.slice(0)
t.splice(i,1);
//console.log(t)
combi(t,s + a[i]);
}
}
}
function chkPrime(num) {
if (num < 2) return false;
if (num === 2) return true;
for (var i = 2; i <= Math.sqrt(num); i++) {
if (num%i===0) return false;
}
return true;
}
return answer;
}
得るべき部分
Reference
この問題について(Programmers-フルナビゲーション>小数点の検索), 我々は、より多くの情報をここで見つけました https://velog.io/@singco/Programmers-완전탐색-소수-찾기テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol