우선 배울 수 있는 스킬트리 순서를 모드 담는 배열 만듬 -> chanceSkill = [ ]
- skill_trees를 하나씩 보면서 아래 과정 체크
- 체크할 스킬트리에 skill에 없는 것을 지우고 새로 만듬.
- 이때 그 값이 chanceSkill에 그 값이 있거나 아예 값이 없다면 answer++
function solution(skill, skill_trees) {
var answer = 0;
//스킬트리 찍을 수 있는 순서 경우 구하기 => C CB CBD
var chanceSkill = [];
for(var i = 1;i<=skill.length+1;i++){
chanceSkill.push(skill.substr(0,i));
}
//스킬 쪼개기
skill = skill.split("");
var checkSkill;
for(var i = 0; i<skill_trees.length;i++){
//BACDE => B, A, C, D, E
// Skill에 있는 것만 남겨둠. B C D
//B C D => BCD
checkSkill = skill_trees[i].split("").filter((element)=> skill.indexOf(element)!==-1).join("");
if(chanceSkill.indexOf(checkSkill)!==-1||checkSkill.length===0) answer++;
}
return answer;
}
이번 문제는 쉽게 풀어냈으나, 계속 틀렸다... 그래서 1시간 동안 고민을 해본결과, 스킬 트리가 필요 없는 스킬로만 있을때를 고려를 안했다. 이렇듯, 더 집중도 있는 설계가 필요하다고 느껴진 문제였다.
좋은 풀이법 꾸준히 올려주셔서 잘 참고하고있습니다ㅎㅎ 감사합니다 😁