[コンビ]黒いジャックに飽きた.
質問する
普通のブラックジャックゲームでは、時々敗れて興味を失ったキム・コディンは、朴テテクにゲームのルールを変えて新しいカードゲームを試してみることを提案した.
新しいルールは次のとおりです.
1. 숫자로 이루어진 카드를 여러 장 받습니다.
2. 3장씩 카드를 고르고, 3장에 적힌 숫자들의 합이 소수인지 확인합니다.
3. 받아든 카드로 만들 수 있는 소수의 개수가 많은 사람이 이기게 됩니다.
예로, [1, 2, 3, 4]라는 카드를 받았을 때 만들 수 있는 숫자는 6, 7, 8, 9이고, 소수는 7 하나이기 때문에 가지고 있는 소수의 개수는 1개입니다.
[2, 3, 4, 8, 13]라는 카드를 받았을 때 만들 수 있는 숫자는 9, 13, 18, 14, 19, 23, 15, 20, 24, 25이고, 소수는 13, 19, 23 총 3개이기 때문에 가지고 있는 소수의 개수는 3개입니다.
ゲームをする前に、少数の人について何も知らなかった朴テテクは、ゲームを数日遅らせ、ゲームのルールに従う関数を作成することにした.1つの関数を完成させてください.小数の場合、3枚のカードの中の3枚のカードを小数に組み合わせます.
入力
パラメータ1
しゅつりょく
注意事項
I/O例
let output = boringBlackjack([1, 2, 3, 4]);
console.log(output); // 1
let output = boringBlackjack([2, 3, 4, 8, 13]);
console.log(output); // 3
📌 この問題は組合せに関する問題であり,順序を考慮して数字を求めて小数と判断し,その数字に戻ればよい.const isPrime = (n) => {
for (let i = 2; i <= Math.sqrt(n); i++) {
if (n % i === 0) {
return false;
}
}
return true;
}
function boringBlackjack(cards) {
let answer = [];
let tmp = Array.from({length: 3}, ()=>0);
const DFS = (L, s) => {
if ( L === 3) {
answer.push([...tmp].reduce((prev, cur) => prev+cur))
}
else {
for ( let i = s; i < cards.length; i++ ) {
tmp[L] = cards[i]
DFS(L+1, i+1)
}
}
}
DFS(0, 0)
return answer.filter((num) => isPrime(num)).length
}
Reference
この問題について([コンビ]黒いジャックに飽きた.), 我々は、より多くの情報をここで見つけました https://velog.io/@jaehyeon23/조합-블랙잭은-지겨워テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol