import java.util.ArrayList;
public class SkillTree {
public int solution(String skill, String[] skill_trees) {
int answer = 0;
ArrayList<String> skillList = new ArrayList<>();
for (char ele : skill.toCharArray()) {
skillList.add(ele + "");
}
for (int i = 0; i < skill_trees.length; i++) {
ArrayList<String> tempList = new ArrayList<>();
for (char ele : skill_trees[i].toCharArray()) {
tempList.add(ele + "");
}
tempList.retainAll(skillList);
int count = 0;
for (int j = 0; j < tempList.size(); j++) {
if (tempList.get(j).equals(skillList.get(j))) {
count++;
}
}
if (count == tempList.size()) {
answer++;
}
}
return answer;
}
public static void main(String[] args) {
SkillTree s = new SkillTree();
String[] skill_trees = { "BACDE", "CBADF", "AECB", "BDA", "BACE", "AE" };
System.out.println(s.solution("CBD", skill_trees));
}
}
str = str.replaceAll("[^0-9]", ""); : 0 ~ 9 가 아닌 문자(숫자가 아닌 문자)를 ""로 치환. 즉 숫자만 추출
str = str.replaceAll("[0-9]", ""); : 0 ~ 9 숫자를 ""로 치환. 즉 문자만 추출(메타 문자열에서 ^은 not을 의미)
"[a-zA-Z]"
list1.retainAll(list2) : 두 리스트(List)에서 동일한 원소를 제외하고 나머지 원소를 list1에서 모두 제거
list1.removeAll(list2) : 두 리스트(List)에서 동일한 원소를 list1에서 모두 제거