본문 바로가기

Programmers/Level2

스킬트리

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
class Solution {
    public int solution(String skill, String[] skill_trees) {
        int answer = 0;
 
        for (int i = 0; i < skill_trees.length; i++) {
            String s = skill_trees[i];
            boolean flag = true;
 
            for (int j = 0; j < skill.length() - 1; j++) {
                int p1 = s.indexOf(skill.charAt(j));
                int p2 = s.indexOf(skill.charAt(j + 1));
                // 선행 스킬 없이 후행 스킬이 나올 경우
                if (p1 == -1 && p2 != -1) {
                    flag = false;
                    break;
                } else if (p2 != -1 && p1 > p2) { // 선행 스킬이 더 뒤에 나올경우
                    flag = false;
                    break;
                }
            }
            if (flag)
                answer++;
        }
        return answer;
    }
}
cs

다른 사람의 풀이 중 replaceAll로 skill에 있지 않은 값을 다 없애고, skill 값이 순서대로 존재하는지 확인하는 코드가 있었다.

'Programmers > Level2' 카테고리의 다른 글

N개의 최소공배수  (0) 2021.07.30
땅따먹기  (0) 2021.07.30
[3차] 파일명 정렬  (0) 2021.07.30
예상 대진표  (0) 2021.07.30
괄호 변환  (0) 2021.07.29