본문 바로가기

Algorithm/프로그래머스

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

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

 

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

 

programmers.co.kr

skill_tree의 원소들을 skill에 등장하는 알파벳만 남기고 모두 없앤 뒤(코드에서 sub에 해당)

skill 문자열에 sub로 시작하면 가능한 스킬트리로 판정되도록 짰당.

다른 분 코드를 보니 정규표현식이 굉장히 편해보인다. 공부해야겠다.

 

class Solution {
    public int solution(String skill, String[] skill_trees) {
        int answer = 0;

        // skill에 포함되는 알파벳 정보 저장
        boolean[] alpha = new boolean[26];

        for (var a : skill.toCharArray()) {
            int i = (int)a - (int)'A';
            alpha[i] = true;
        }

        for (var s : skill_trees) {
            String sub = "";
            // 한글자씩 탐색하면서 skill에 해당하면 sub에 추가
            for (var c : s.toCharArray()) {
                if (alpha[(int)c - (int)'A']) {
                    sub += c;
                }
            }
            if (skill.startsWith(sub)) answer++;
        }

        return answer;
    }
}