티스토리 뷰

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

 

알고리즘 연습 - 스킬트리 | 프로그래머스

 

programmers.co.kr

 

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
28
29
30
 
class Solution {
    public int solution(String skill, String[] skill_trees) {
        int answer = 0;
 
        for(int i = 0; i < skill_trees.length; i++) {
 
            int index = 0;
            boolean checker = true;
 
            String[] skillCustom = skill_trees[i].split("");
 
            for(String skillChecker : skillCustom) {
                if(index == skill.indexOf(skillChecker)) {
                    index++;
                } else if (index < skill.indexOf(skillChecker)){
                    checker = false;
                    break;
                }
            }
            if(checker) {
                answer++;
            }
        }
        return answer;
    }
}
http://colorscripter.com/info#e" target="_blank" style="color:#4f4f4f; text-decoration:none">Colored by Color Scripter

 

String의 charAt() 메소드를 사용하려다보니 

선행 스킬 순서 한번

커스텀한 스킬트리 한번

커스텀 스킬트리 중 스킬 순서 보기 위해 한번

이렇게 삼중 반복문을 쓰고 있었다.

반복문을 한번이라도 줄이고 싶었는데, indexOf()를 사용해 문자가 아닌 문자의 순서로 체크하는 코드를 찾았다.

문자 비교하려고 문자 자체로만 비교하려했는데, 순서도 있다는걸 항상 생각해야겠다.

댓글