アルゴリズムを解く
#unpackGiftbox
ギフトボックス情報の配列と文字列を入力し、条件を満たすギフトがあるかどうかを返します.
注意事項関数 繰り返し文が使用可能( 入力配列は、関数呼び出し後も初期状態(不変)のまま 空の配列または空の文字列を入力するとfalseを返す I/O例空アレイとして発表 forドアを回し、giftBoxの要素を巡回する
2-1. giftBoxの要素がwishと同じ場合→return true
2-2. giftBoxの要素が配列である場合→その要素を空の配列にマージする 重複文を出す アレイbinarr長が0より大きい場合→戻り関数 以上の条件は適用されない→return false
ギフトボックス情報の配列と文字列を入力し、条件を満たすギフトがあるかどうかを返します.
注意事項
boolean
戻りタイプunpackGiftbox
再帰関数として記述for
・while
)const giftBox = ['macbook', 'mugcup', ['eyephone', 'postcard'], 'money'];
let output = unpackGiftbox(giftBox, 'iphone');
console.log(output); // --> false
解答方法2-1. giftBoxの要素がwishと同じ場合→return true
2-2. giftBoxの要素が配列である場合→その要素を空の配列にマージする
function unpackGiftbox(giftBox, wish) {
if (giftBox.length === 0 || wish === '') {
return false;
}
let binarr = [];
for (let i = 0; i < giftBox.length; i++) {
if (giftBox[i] === wish) {
return true;
} else if (Array.isArray(giftBox[i])) {
binarr = binarr.concat(giftBox[i]);
}
}
if (binarr.length > 0) {
return unpackGiftbox(binarr, wish);
}
return false;
}
Reference
この問題について(アルゴリズムを解く), 我々は、より多くの情報をここで見つけました https://velog.io/@miraecod/문제풀이알고리즘テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol