[프로그래머스][JS]스킬트리

Kyle·2020년 12월 18일
0

problem solving

목록 보기
13/36

문제

문제: https://programmers.co.kr/learn/courses/30/lessons/49993

skill에 문자열
skill_trees에 문자열을 담은 array가 있다.

skill_trees문자열 중 skill문자열의 순서와 다르게 작성된 skill을 제외하고 제대로 된 문자열의 개수를 출력하는 문제.

해결방법

skill의 맨 앞에 있는 문자가 아닌것이 skill_trees에 먼저 나오게 되면 안된다는 뜻이다.

skill_tree를 각 문자열을 순회하며 skill[0] (맨 앞 문자)와 같은지 판단하고 같다면 skill.shift(),

아니라면, 근데? 아닌데 그 놈이 skill 뒤에있다?? 그러면, 앞의 스킬을 찍지 않고 뒤의 skill을 찍으려는 것이기 때문에 false를 반환해주면된다!

solution(): check()에서 true인 것만 count해주면 된다.

code

function solution(skill, skill_trees) {
    let answer =0
    skill_trees.forEach(tree=>{
        if(check(skill,tree)) answer++
    })
    return answer
}

function check(skill,tree){
    const skillArr=[...skill]
    for(let char of tree){
        if(char===skillArr[0]){
            skillArr.shift()
        }else if(skillArr.includes(char)){
            return false
        }
    }
    return true
}
profile
Kyle 발전기

0개의 댓글