알고리즘 풀이/프로그래머스

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

배게 2019. 3. 13. 20:07
728x90

선행 스킬을 찍기전에 나오면 안되는 스킬이 나온다면


flag를 활용해 false처리해줌 for문을 돌고난 후에도 flag값이


여전히 참일 경우 문제에서 요구하는 스킬트리 조건을 달성하므로


answer를 counting해줌


 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
class Solution {
    public int solution(String skill, String[] skill_trees) {
        int answer = 0;

        for(int i=0; i<skill_trees.length; i++){
            int skiIdx=0;
            boolean flag = true;

            for(int j=0; j<skill_trees[i].length(); j++){

                // 스킬트리 순회
                for(int k=skiIdx; k<skill.length(); k++){
                    if(skill.charAt(k)==skill_trees[i].charAt(j)) {
                        if(k!=skiIdx) flag=false;
                        else {
                            skiIdx++;
                        }
                    }
                }
            }
            if(flag) answer++;
        }


        return answer;
    }
}