프로그래머스 | 스킬트리 (Java)

mul·2023년 3월 11일
1

알고리즘

목록 보기
37/65
post-custom-banner

🔒 문제

프로그래머스 Summer/Winter Coding(~2018) 스킬트리

🔑 해결

선행 스킬 순서 skill과 유저들이 만든 스킬트리를 담은 배열 skill_trees가 매개변수로 주어질 때, 가능한 스킬트리 개수를 return하는 solution 함수를 작성하는 문제이다.

이전에 신규아이디추천문제에서 replaceAll()메서드에 대해 공부한 것이 기억나 이를 활용하였다.

🪄 replaceAll(String regex, String replacement)
[^s] : 특정 문자(s)를 제외한 문자 치환
String str = new_id.replace("[^a]", "b"); // a를 제외한 문자를 b로 치환

🔓 코드

class Solution {
    public int solution(String skill, String[] skill_trees) {
        int answer = 0;
        
        for (int i = 0; i < skill_trees.length; i++) {
			String stree = skill_trees[i].replaceAll("[^" + skill + "]", ""); // skill문자를 제외한 문자 치환
			for (int j = 0; j < skill.length() + 1; j++) {
				String sub_skill = skill.substring(0, j); // skill을 한 글자씩 잘라
				if (stree.equals(sub_skill)) { // 가능한 스킬트리인지 확인
					answer++;
					break;
				}
			}
        }
        
        return answer;
    }
}
post-custom-banner

0개의 댓글