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

Choi Seong Jin·2022년 11월 19일
0

프로그래머스

목록 보기
13/33

문제 링크 : 스킬 트리


내 풀이

public int solution(String skill, String[] skill_trees) {
        int unvalid = 0;
        Map<Character, Integer> skillTree = new HashMap<>();
        for(int i = 0; i < skill.length(); i++){
            skillTree.put(skill.charAt(i), i);
        }
        for(String skill_tree: skill_trees){
            int index = 0;
            for(int i = 0; i < skill_tree.length(); i++){
                if(skillTree.get(skill_tree.charAt(i)) != null){
                   if(skillTree.get(skill_tree.charAt(i)) > index){
                       unvalid++;
                       break;
                   }else if(skillTree.get(skill_tree.charAt(i)) == index){
                       index++;
                   }
                }
            }
        }
        return skill_trees.length - unvalid;
    }

먼저 정해진 스킬트리인 skill에 주어진 순서대로 0, 1, 2... 를 맵핑해서 skillTree Map에 저장한다.
그 후 skill_trees에 저장된 스킬 순서를 돌면서 Map에 저장된 value의 순서대로 나타나는지 확인하고, 아니라면 unvalid에 1씩 증가한다.
그 후 skill_trees의 길이에서 unvalid를 빼서 반환한다.

profile
백엔드 개발자 지망생입니다!

0개의 댓글