링크 : 프로그래머스 level2 ) 스킬트리
예전에 풀다가 실패한 문제
요번에 다시 풀어봤다.
내가 생각한 방법은
ex) " CBD "
-> "C" "CB" "CBD"
ex) " BACDE "
-> "BCD"
처음에 3,4개 정도만 맞고 틀렸었다.
그 이유는 스킬순서에 있는 알파벳이 아예없는 스킬트리도 존재 할수있다.
그런 스킬트리 또한 정답이다.
import java.util.HashSet;
class Solution {
public int solution(String skill, String[] skill_trees) {
String pattern = "[^";
HashSet<String> skills_map = new HashSet<String>();
for(int i=0; i<skill.length(); i++)
{
pattern+=skill.substring(i, i+1);
skills_map.add(skill.substring(0,i+1));
}
pattern+="]";
int answer=0;
for(int i=0; i<skill_trees.length; i++)
{
String s=skill_trees[i].replaceAll(pattern, "");
if(skills_map.contains(s))
answer++;
else if(s.equals(""))
answer++;
}
return answer;
}
}