프로그래머스 스킬트리 (Java, 자바)

jonghyukLee·2023년 8월 22일
0

이번에 풀어본 문제는
프로그래머스 스킬트리 입니다.

📕 문제 링크

❗️코드

import java.util.HashMap;
import java.util.Map;
class Solution {
    public int solution(String skill, String[] skill_trees) {
        int answer = 0;
        Map<Character, Integer> map = new HashMap<>();

        int skillSize = skill.length();
        for (int i = 0; i < skillSize; i++) map.put(skill.charAt(i), i + 1);

        for (String skillTree: skill_trees) {
            int tmpCount = 1;
            boolean flag = true;
            for (char c: skillTree.toCharArray()) {
                Integer skillIndexInfo = map.get(c);
                if (skillIndexInfo != null) {
                    if (skillIndexInfo > tmpCount) {
                        flag = false;
                        break;
                    }
                    else tmpCount++;
                }
            }
            if (flag) answer++;
        }
        return answer;
    }
}

📝 풀이

스킬트리 순서 문자열이 주어졌을 때, 서로 다른 스킬트리로 이루어진 배열 내에서 순서를 충족하는 스킬트리 문자열의 개수를 구하는 문제입니다.
정해진 순서를 앞서갔는지 까지만 판단하면 된다고 생각이 들어서, 처음 주어진 스킬트리 순서를 <스킬, 순서> 형태로 Map에 저장했습니다.
위 Map을 활용하여, count를 늘려가면서 현재 count보다 앞선 인덱스를 마주했을 때 실패로 간주하여 반복문을 벗어나도록 풀이 해보았습니다.

profile
머무르지 않기!

0개의 댓글