스킬트리 js

정하윤·2022년 11월 2일
0
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;
}

0개의 댓글