[Algorithm/JavaScript]スキルツリー
Programmers Level.2 Question Review 💡
質問元:https://programmers.co.kr/learn/courses/30/lessons/49993
先行スキルとは、あるスキルを学ぶ前に学ばなければならないスキルです.
例えば、現在技順が
以上の手順にない他のスキル(癒しなど)は順番に学ぶことができます.したがって、
先行スキル順スキルとプレイヤーが作成したスキルツリー1の配列スキルtreeをパラメータとして付与する場合は、できるだけスキルツリーの個数を返すsolution関数を書き出します.
技能はアルファベット大文字で表され、全ての文字列はアルファベット大文字のみで構成されている. スキル順序とスキルツリーは文字列で表す.
例えば、 前置スキル順スキルの長さが1以上26以下で、スキルが重複しない. skill treesは、長さが1または20未満の配列である. skill treesの要素はスキルを表す文字列である.
skill treesの要素の長さは2または26未満であり、このスキルは繰り返しません.
「BACDE」:Bスキルを習得する前に、Cスキルを習得しなければならない.不可能なスキル 「CBADF」:可能なスキルツリー. 「愛」:可能なスキルツリー. 「BDA」:Bスキルを習得する前に、Cスキルを習得しなければならない.不可能なスキルツリー
、뉭뉭7、先頭、뉪뉪4とのstringの各要素のインデックスで大きさを比較すると、小さいのは大きい順かどうか確定できるはずですが….漠然とした考えをした.
しかし、最終的に確認したいのは、だから 以下のように配列の組み込み方法を連続的に使用するのはほぼ初めて.配列の仕方を熟知すれば、コードの長さを短くすることができ、かなり便利だと感じます.特に、 ・
質問元:https://programmers.co.kr/learn/courses/30/lessons/49993
質問する
問題の説明
先行スキルとは、あるスキルを学ぶ前に学ばなければならないスキルです.
例えば、現在技順が
스파크 → 라이트닝 볼트 → 썬더
の場合、日焼け止めを習うには、まず発光ボルト、発光ボルト、まず火花を習う.以上の手順にない他のスキル(癒しなど)は順番に学ぶことができます.したがって、
스파크 → 힐링 → 라이트닝 볼트 → 썬더
と同じスキルツリーを使用することは可能ですが、썬더 → 스파크
私라이트닝 볼트 → 스파크 → 힐링 → 썬더
同じスキルツリーを使用することはできません.先行スキル順スキルとプレイヤーが作成したスキルツリー1の配列スキルtreeをパラメータとして付与する場合は、できるだけスキルツリーの個数を返すsolution関数を書き出します.
せいげんじょうけん
例えば、
C → B → D
インスタントラーメンCBDskill treesの要素の長さは2または26未満であり、このスキルは繰り返しません.
I/O例
I/O例説明
回答の提出
function solution(skill, skill_trees) {
var answer = 0;
let skillArr = skill.split(""); //skill 요소를 배열로 나누어두기. 인덱스로 순서를 비교할 예정.
let newStr;
skill_trees.forEach(str => {
newStr = str.split("").filter(el => skillArr.includes(el)).join("");//skillArr에 있는 요소들만 '차례대로' 반환해서 string으로 만들기
if (newStr === skill.substring(0, newStr.length)) {
answer++;
}
})
return answer;
}
今日のレソン
、뉭뉭7、先頭、뉪뉪4とのstringの各要素のインデックスで大きさを比較すると、小さいのは大きい順かどうか確定できるはずですが….漠然とした考えをした.
しかし、最終的に確認したいのは、
skill
の文字がどの文字を挟んでいるかにかかわらず、skill
の文字が順番にskills_trees
の中にあるかどうかです. skill_trees
の各要素をめぐってskillArr(skill을 배열로 쪼개준 것)
の要素が一致する文字がある場合に、順に新しい文字列を作成していきます(newStr
)、この2つの新しい文字列がskill
のすべての要素が同一であると仮定した仮定の下で、この2つの文字列を比較しました.filter()
という方法で最初に要素を一つ一つ比較したいと思っていた計画を覆すことができて、とても嬉しかったです.newStr = str.split("").filter(el => skillArr.includes(el)).join("");
覚えておいてください.filter()
コールバック関数の条件を満たす要素だけをフィルタして並べ替えます.また、順序も如実に反映されます.Reference
この問題について([Algorithm/JavaScript]スキルツリー), 我々は、より多くの情報をここで見つけました https://velog.io/@grinding_hannah/AlgorithmJavaScriptテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol