카테고리 없음

[프로그래머스/javascript] 스킬트리 (더 간단한 방법으로 다시풀기)

_서리__ 2023. 3. 3. 11:53
function solution(skill, skill_trees) {
    //스택..?
    //스택에 값을 넣음, 근데 선행된 값이 없으면 들어갈 수 없음!
    let skillArr = skill.split('')
    let prevedSkills = {}
    let currentSkill = skillArr[0];
    let skillcount = 0;
    let current = '';
    let perpect = true;
    for(let i=1;i<skillArr.length;i++){
        prevedSkills[skillArr[i]]=false;
    }
    prevedSkills[skillArr[0]]=true

    let prevedSkill = {};

    var answer = 0;

    for(let i=0;i<skill_trees.length;i++){
        perpect = true;
        prevedSkill = Object.assign({},prevedSkills);
        currentSkill = skillArr[0];
        skillcount =0;
        for(let j=0;j<skill_trees[i].length;j++){
            current = skill_trees[i][j]
            if((current===currentSkill)&&(prevedSkill[skillArr[skillcount+1]]===false)){
                skillcount++;
                currentSkill = skillArr[skillcount]
                prevedSkill[currentSkill] = true;
                continue;
            }
            if(prevedSkill[current]===true) continue
            if(prevedSkill[current]===undefined) continue;
            else if(prevedSkill[current]===false){
                perpect = false;
                break;
            }
        }
        if(perpect) answer++
    }
    return answer;
}