Programmers-スキルツリー
8388 ワード
💻 スキルツリー
に質問
https://programmers.co.kr/learn/courses/30/lessons/49993
勘定科目
function solution(skill, skill_trees) {
var answer = 0;
var skillArr = skill.split('');
skill_trees.map(x => {
var isIncludesAny = false;
for (let i = 0; i < skillArr.length; i++) {
var isIncludes = x.indexOf(skillArr[i]);
if (isIncludes !== -1) {
isIncludesAny = true;
if (i === 0) {
continue;
} else {
var isIncludesPreskill = x.indexOf(skillArr[i - 1]);
if (isIncludesPreskill === -1) {
return;
}
if (isIncludesPreskill > isIncludes) {
return;
}
}
}
}
if (isIncludesAny === false) {
answer++;
return
}
answer++;
})
return answer;
}
let skill = "CBDK";
let skill_trees = ["CB", "CXYB", "BD", "AECD", "ABC", "AEX", "CDB", "CBKD", "IJCB", "LMDK"];
console.log(solution(skill, skill_trees));
¥¥АААААААААА
answer++
になる条件について話します
1.スキル要素に保持されていないスキル要素のみのスキルツリー
2.スキル要素のうち、スキルの先頭要素があり、順番に学習している場合は、スキル要素にないスキルだけが気になります.
function solution(skill, skill_trees) {
var answer = 0;
var skillArr = skill.split('');
skill_trees.map(x => {
var isIncludesAny = false;
for (let i = 0; i < skillArr.length; i++) {
var isIncludes = x.indexOf(skillArr[i]);
if (isIncludes !== -1) {
isIncludesAny = true;
if (i === 0) {
continue;
} else {
var isIncludesPreskill = x.indexOf(skillArr[i - 1]);
if (isIncludesPreskill === -1) {
return;
}
if (isIncludesPreskill > isIncludes) {
return;
}
}
}
}
if (isIncludesAny === false) {
answer++;
return
}
answer++;
})
return answer;
}
let skill = "CBDK";
let skill_trees = ["CB", "CXYB", "BD", "AECD", "ABC", "AEX", "CDB", "CBKD", "IJCB", "LMDK"];
console.log(solution(skill, skill_trees));
スキルツリーの要素を
x
と呼び,x
の中にスキル要素があるかどうかを確認する.includesAny
をtrue
に変換する:条件1確認スキル要素の一番前の部分がある場合は、次のスキルを確認してください
再度2つ目から、スキル要素があるか確認した場合、先行スキルがあるか確認します.
answer++
です.学識
アレイの複製は参照複製ではなく、深さ複製のために
slice()
またはvar arrCopy = JSON.parse(JSON.stringify(arr))
を複製する.配列の比較も上記のように
JSON.stringify(arr) === JSON.stringify(arr2)
である.欠点は、オブジェクトをJSON
形式に変換することであるので、getter
、setter
を含むオブジェクトに注意する.map()
関数は順番に配列されているので、break
またはcontinue
のようなfor
文で返される文は通用しません.代わりにreturn
のようなものがあります.Reference
この問題について(Programmers-スキルツリー), 我々は、より多くの情報をここで見つけました https://velog.io/@doodream/Programmers-스킬트리テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol