function solution(skill, skill_trees) {
let arr = [];
let answer = skill_trees.length;
for (let i = 0; i < skill_trees.length; i++) {
let stack = [];
for (let j = 0; j < skill_trees[i].length; j++) {
for (let k = 0; k < skill.length; k++) {
if (skill_trees[i][j] === skill[k]) {
stack.push(skill[k]);
}
}
}
arr.push(stack);
}
for (let i = 0; i < arr.length; i++) {
for (let j = 0; j < arr[i].length; j++) {
if (arr[i][j] != skill[j]) {
answer -= 1;
break;
}
}
}
return answer;
}
맨처음 이러한 식으로 만들어보았는데 arr 배열을 만드는 과정에서 map함수와 filter 함수를 쓰면 더 간결한 코드를 만들 수 있는걸 알게되었다.
let answer = skill_trees.length;
const arr = skill_trees.map((tree) => {
return tree.split("").filter((x) => skill.includes(x));
});
for (let i = 0; i < arr.length; i++) {
for (let j = 0; j < arr[i].length; j++) {
if (arr[i][j] != skill[j]) {
answer -= 1;
break;
}
}
}
return answer;
}