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

 
by 박신종

> 문제

문제 : [스킬트리]



> 문제풀이

level4 문제풀다가 머리가 아파서 잠시 쉬는 타임으로다가..

선행스킬순서 skill과 유저가 만든 스킬트리 배열을 배개변수로 주어질 때, 선행스킬순서에 맞는 스킬트리 개수를 찾는 문제인데, 해싱으로 빠르게 탐색할수 있도록 구현하였다.

소스는 다음과 같다.

import java.util.*;
class Solution {
    public int solution(String skill, String[] skill_trees){
        Map<Character, Integer> map = new HashMap<>();
        for(int i=0; i<skill.length(); i++){
            map.put(skill.charAt(i), i);
        }
        int answer = 0;
        for(int i=0; i<skill_trees.length; i++){
            int index = 0;
            String target = skill_trees[i];
            boolean flag = true;
            for(int j=0; j<target.length(); j++){
                char c = target.charAt(j);
                if(map.get(c) == null) continue;
                else{
                    if(map.get(c) == index) index++;
                    else {
                        flag = false;
                        break;
                    }
                }
            }
            if(flag) answer++;
        }
        return answer;
    }
}




문제 출처 : Programmers