[配列]新しいチキンソースレシピ
新しいチキンソースレシピ
質問する
開業以来、常勝将軍の「常勝将軍フライドチキン店」の秘訣はソースにある.他のブランドのフライドチキン店の多くは、フライドチキン店に直行するソースの秘訣を知りたいが、あきらめている.
理由は、5代連続で伝えられている「秘密の勝負長駆チキンソース比例レシピ」が70億人の人口の中で社長だけが知っているからだ.最近、ネットユーザーからこのレシピの一部を抜粋したという噂を聞いた.
その噂は以下の通りです.
ただし、0が3個より大きい材料は変質材料であるため除外する.
入力
パラメータ1:stumarr
要素は0と1だけの数字で、常に1で始まる.
要素を繰り返すことはできません.
要素の長さは20を超えない.
配列の長さは2または10を超えない.
ex) [111, 110, 1010, 10, 10110]
パラメータ2:choicenum
しゅつりょく
注意事項
[1,10],[1111],[10,11],[111,11],[111,10]を返さなければならない.
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]
];
*/
📌 この問題では、例外条件を適用して入力された配列を変更する必要があります.これを先にやらなかったので答えにくいです
function newChickenRecipe(stuffArr, choiceNum) {
if ( choiceNum > stuffArr.length ) {
return [];
}
// 0이 3개인 요소 제외
let filterArr = stuffArr.filter((index) => !/0{3,}/g.test(index))
let sortStuff = adStuff.sort((a,b) => a-b);
let answer = [];
// 조건에 부합하는 배열
let tmp = Array.from({ length: choiceNum }, () => 0);
//요소가 중복되면 안되므로 ch 배열 필요
let ch = Array.from({ length: stuffArr.length }, () => 0);
const DFS = (L) => {
if ( L === choiceNum) {
answer.push([...tmp])
}
else {
for ( let i = 0; i < sortStuff.length; i++ ) {
if (ch[i] === 0 ) {
ch[i] = 1;
tmp[L] = sortStuff[i]
DFS(L+1);
ch[i] = 0;
}
}
}
}
DFS(0)
return answer;
}
console.log(newChickenRecipe([1, 10, 1100, 1111], 2));
Reference
この問題について([配列]新しいチキンソースレシピ), 我々は、より多くの情報をここで見つけました https://velog.io/@jaehyeon23/순열-새로운-치킨-소스-레시피テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol