[配列]チキンソースレシピ
8015 ワード
順序を繰り返すことはできません.
アルゴリズムは繰り返しシーケンスに似ているが
浅いコピーを行うことで、標準となる要素をつなぎ合わせて、重複する方向のアルゴリズムを作成しないようにします.がオープンして以来、「勝利に乗じてチキン屋を追い払う」秘訣はソースにある.他のブランドのフライドチキン店の多くは、フライドチキン店に直行するソースの秘訣を知りたいが、あきらめている.
理由は、5代連続で伝えられている「秘密の勝負長駆チキンソース比例レシピ」が70億人の人口の中で社長だけが知っているからだ.最近、ネットユーザーからこのレシピの一部を抜粋したという噂を聞いた.
その噂は以下の通りです. これは、N種の材料の中でM種のみを組み合わせた場合の全ての数の一つである.
材料は0と1だけの数字で暗号化され、常に1で復号することはできません.
ただし、0が3個より大きい材料は変質材料であるため除外する.
材料の順番が違うと味も違うので、材料を入れる順番が違うとレシピが違います.
この噂を参考に、「秘密の勝者チキンソース」になれるなら、すべての数字を返す関数を書いてください.
アルゴリズムは繰り返しシーケンスに似ているが
浅いコピーを行うことで、標準となる要素をつなぎ合わせて、重複する方向のアルゴリズムを作成しないようにします.
理由は、5代連続で伝えられている「秘密の勝負長駆チキンソース比例レシピ」が70億人の人口の中で社長だけが知っているからだ.最近、ネットユーザーからこのレシピの一部を抜粋したという噂を聞いた.
その噂は以下の通りです.
材料は0と1だけの数字で暗号化され、常に1で復号することはできません.
ただし、0が3個より大きい材料は変質材料であるため除外する.
材料の順番が違うと味も違うので、材料を入れる順番が違うとレシピが違います.
この噂を参考に、「秘密の勝者チキンソース」になれるなら、すべての数字を返す関数を書いてください.
입출력 예시
const output1 = newChickenRecipe([1, 10, 1100, 1111], 2);
console.log(output1);
/*
[
[1, 10], [1, 1100], [1, 1111],
[10, 1], [10, 1100], [10, 1111],
[1100, 1], [1100, 10], [1100, 1111],
[1111, 1], [1111, 10], [1111, 1100]
];
*/
const output2 = newChickenRecipe([10000, 10, 1], 3);
console.log(output2); // []
const output3 = newChickenRecipe([11, 1, 10, 1111111111, 10000], 4);
console.log(output3);
/*
[
[1, 10, 11, 1111111111],
[1, 10, 1111111111, 11],
[1, 11, 10, 1111111111],
[1, 11, 1111111111, 10],
[1, 1111111111, 10, 11],
[1, 1111111111, 11, 10],
[10, 1, 11, 1111111111],
[10, 1, 1111111111, 11],
[10, 11, 1, 1111111111],
[10, 11, 1111111111, 1],
[10, 1111111111, 1, 11],
[10, 1111111111, 11, 1],
[11, 1, 10, 1111111111],
[11, 1, 1111111111, 10],
[11, 10, 1, 1111111111],
[11, 10, 1111111111, 1],
[11, 1111111111, 1, 10],
[11, 1111111111, 10, 1],
[1111111111, 1, 10, 11],
[1111111111, 1, 11, 10],
[1111111111, 10, 1, 11],
[1111111111, 10, 11, 1],
[1111111111, 11, 1, 10],
[1111111111, 11, 10, 1],
]
*/
function newChickenRecipo(stuffArr, choiceNum){
let fresh = []
for(let n = 0 ; n<stuffArr.length ; n++){
const element = String(stuffArr[n]
.split("")
.filter((el)=> el === "0")
if(element.length<3){
fresh.push(stuffArr[n]
}
}
fresh.sort((a,b)=>a-b)
const newRecipe = []
const aux = (arr,bucket,num)=>{
if(num === 0){
newRecipe.push(bucket)
return
}
for(let n= 0 ; n<arr.length ; n++){
const pick = arr[n]
const shallowCopy = arr.slice()
shallowCopy.splice(n,1)
aux(shallowCopy,bucket.concat(pick),num-1)
}
}
aux(fresh,[],choiceNum)
return newRecipe
}
Reference
この問題について([配列]チキンソースレシピ), 我々は、より多くの情報をここで見つけました https://velog.io/@hi4190/순열치킨소스레시피テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol