본문 바로가기
  • Jetpack 알아보기
프로그래머스 - JAVA/Level 2

[JAVA] 프로그래머스 Lv.2 : 스킬트리

by 새우버거♬ 2021. 8. 12.

🔥 Summer/Winter Coding (~2018)

예제:

skill skill_trees return
"CBD" ["BACDE", "CBADF", "AECB", "BDA"] 2

 

제한 조건:

  • 스킬은 알파벳 대문자로 표기하며, 모든 문자열은 알파벳 대문자로만 이루어져 있습니다.
  • 스킬 순서와 스킬트리는 문자열로 표기합니다.
    • 예를 들어, C → B → D 라면 "CBD"로 표기합니다
  • 선행 스킬 순서 skill의 길이는 1 이상 26 이하이며, 스킬은 중복해 주어지지 않습니다.
  • skill_trees는 길이 1 이상 20 이하인 배열입니다.
  • skill_trees의 원소는 스킬을 나타내는 문자열입니다.
    • skill_trees의 원소는 길이가 2 이상 26 이하인 문자열이며, 스킬이 중복해 주어지지 않습니다.

Solution #1

class Solution {
    public int solution(String skill, String[] skill_trees) {
        int answer = skill_trees.length;
        char[] skills = skill.toCharArray();

        for (String skill_tree : skill_trees) {
            int lastIndex = Integer.MIN_VALUE;
            for (int i = 0; i < skills.length; i++) {
                int index = skill_tree.indexOf(skills[i]);

                if ((lastIndex == -1 && index > lastIndex) || (index != -1 && lastIndex > index)) {
                    answer--;
                    break;
                }

                lastIndex = index;
            }
        }

        return answer;
    }
}

 


 

More Algorithm!

 

👇👇

 

github.com/ggujangi/ggu.programmers

 

ggujangi/ggu.programmers

프로그래머스 알고리즘, JAVA. Contribute to ggujangi/ggu.programmers development by creating an account on GitHub.

github.com

 

 

 

출처 : 프로그래머스