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

작성자 : 조회수 :

프로그래머스 스킬트리

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

 

소요시간 30

 

확실히 문제 풀이를 확실하게 정리해두고 코드를 짜니 문제푸는데는 훨씬 수월했습니다.






코드는 이렇습니다.

 

 

package Question;

/**

 * 프로그래머스 스킬트리

 * https://school.programmers.co.kr/learn/courses/30/lessons/49993

 *

 * 아이디어

 * 0. 해당 문자열 순회때마다 skill 검색

 * 1. 있다면 skill.charAt(i) 비교

 * 2. 같다면 i++, 다음 char 넘어감

 * 2-1. 다르다면 break 끝내기

 * 3. skill tree 끝까지 도달 했다면 result++

 *

 *

 * */

public class SkillTree {

    public static void main(String[] args) {

        System.out.println(solution("CBD", new String[]{"BACDE", "CBADF", "AECB", "BDA"}));

    }

    public static int solution(String skill, String[] skill_trees) {

        int answer = 0;

        for (String skillT : skill_trees) {

            // 비교할때 필요한 인덱스 표시기, 순회가 되면 0으로 돌아간다.

            int index = 0;

            boolean judge = true;

            for (int i = 0; i < skillT.length(); i++) {

                // 스킬트리 검색 첫번째 인덱스면 순회 시작

                if(skill.contains(String.valueOf(skillT.charAt(i)))){

                    if(skill.charAt(index) == skillT.charAt(i)){

                        index++;

                    }else{

                        judge = false;

                        break;

                    }

                }

            }

            // 문제없이 끝까지 돌았다면 answer 추가

            if(judge) answer++;

        }

        return answer;

    }

}

 

 

 

사실 첫번째 열인가? 에 대한건 코드를 짜고보니 굳이 그럴필요없이 찾아주는 index0으로 해서

 

계속 조정하면 되었습니다.