skill tree에 있는 skill들을 하나씩 비교하면서 배울 수 있는 스킬인지 확인한다.
Dictionary를 이용해서 선행스킬 존재 유무 및 선행스킬 index를 확인하였다.
def solution(skill, skill_trees):
skill_dict = dict()
for (index, s) in enumerate(list(skill)):
skill_dict[s] = index
def is_possible(skill_tree):
skills = list(skill_tree)
learn_index = 0
for x in skills:
# base 1) skill tree에 포함되지 않는 경우
if skill_dict.get(x) == None:
continue
# base 2) skill 배우기 불가능한 경우
if learn_index < skill_dict[x]:
return False
# 순서상 맞는 skill을 배운 경우
learn_index += 1
return True
answer = list(filter(is_possible, skill_trees))
return len(answer)