본문 바로가기
개발/문제풀이

문제풀이)프로그래머스)C# 스킬트리

by 테샤르 2020. 8. 20.

스킬트리

URL :https://programmers.co.kr/learn/courses/30/lessons/49993#

 

코딩테스트 연습 - 스킬트리

 

programmers.co.kr

선행되는 스킬을 순서대로 배워야 하는 순위에 대한 처리로 스킬 순서가 있는 skill string을 입력받아서 

스킬 트리가 존재하는 데이터와 비교 후 가능한지에 대한 여부를 판단한다.

 

public int Solution(string skill, string[] skill_trees) {

        int answer = 0;
        int treeLength = skill_trees.Length;

        for(int i=0; i<treeLength; i++){
            bool flag = true;
            char[] skills = skill_trees[i].ToCharArray();
            int cnt=0;

            int skillsLen = skills.Length;
            for(int j=0; j<skills.Length; j++){
                if(cnt < skill.IndexOf(skills[j])){
                    flag = false;
                    break;
                }else if(cnt == skill.IndexOf(skills[j])){
                    cnt++;
                }
            }

            if(flag){
                answer++;
            }
        }
        return answer;
    }

핵심은 string indexof로 인덱스를 가지고 와서 바로 전의 스킬 인덱스보다 큰지 여부를 판단하는 것이다.

 

 ★

 

반응형

댓글