스킬트리
문제
내가 푼 답
function solution(skill, skill_trees) { let arr = skill.split(''); let str, count = 0; for(let i = 0; i < skill_trees.length ; i++) { str = skill_trees[i].split('').filter(i => arr.includes(i)).join(''); if(str === skill.substring(0,str.length)) { count++; } } return count; }
처음에는
new RegExp
를 쓰려고 용을 썼는데, 구현을 못해서 결국 그냥filter
로 했다. 다른 분들의 풀이를 보니 정규식으로 구현한 풀이가 있었다. 내가 구현을 못했을 뿐…ㅋㅋ 정규식을 이용한 풀이는 다음과 같다. ES6 문법을 사용하면 된다.function solution(skill, skill_trees) { var answer = 0; var regex = new RegExp(`[^${skill}]`,'g'); return skill_trees .map(x => x.replace(regex, '')) .filter(x => { return skill.indexOf(x) === 0 || x ===""; }) .length }