ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [프로그래머스/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;
    }
Designed by Tistory.