https://programmers.co.kr/learn/courses/30/lessons/49993
스킬트리의 경우의 수 각각을 check_possible함수로 가능한 스킬트리인지 판단한다.
해당 함수 로직은 다음과 같다.
ex) 1. BACDE에서 B는 skill에 속하지만 C가 나올 순서인데 B가 먼저나와서 false를 리턴,
2. CBADE에서 C는 skill에 속하고 C가 나올 순서이므로 index를 1더해주고 진행한다.
B 역시 skill에 속하고 B가 나올 순서이므로 진행한다.
A의 경우 skill에 속하지 않으므로 다음으로 넘어간다...
그렇게 무사히 다 진행하면 true를 리턴한다.
3. AECB의 경우도 역시 true.
def solution(skill, skill_trees):
def check_possible(tree):
index=0
for i in tree:
if i in skill:
if i==skill[index]:
index+=1
else:
return False
return True
cnt=0
for tree in skill_trees:
if check_possible(tree):
cnt+=1
return (cnt)