본문 바로가기
프로그래머스

프로그래머스 lv2 - 스킬트리

by dragonDeok 2024. 6. 23.
728x90

문제


프로그래머스 lv2 - 스킬 트리

풀이


  • 선행 스킬의 맨 처음 스킬부터 유저가 만든 스킬트리와 비교
  • 현재 체크해야 할 선행 스킬과 유저 스킬트리에서 체크해야 할 스킬이 같으면 다음 선행 스킬로 idx 증가
  • 선행 스킬에 있는 스킬이 유저 스킬 트리에 있는 경우 cnt 증가
  • 최종적으로 스킬 트리 끝까지 비교 후 idx와 cnt가 같으면 선행 스킬 순서대로 있다고 판단하여 answer 증가

코드


import java.util.*;
class Solution {
    public int solution(String skill, String[] skill_trees) {
        int answer = 0;
        ArrayList<Character> s = new ArrayList<>(); // skill
        for (char c : skill.toCharArray())
            s.add(c);

        int cc = 0;
        for (String user : skill_trees) {
            int idx = 0, cnt = 0;
            for (int i = 0; i < user.length(); i++) {
                if (idx < skill.length() && skill.charAt(idx) == user.charAt(i)) 
                    idx++;
                if (s.contains(user.charAt(i)))
                    cnt++;
            }
            if (cnt == idx)
                answer++;
        }

        return answer;
    }
}