[Python][프로그래머스][Level2] 스킬트리

[Python][프로그래머스][Level2] 스킬트리

코드

def solution(skill, skill_trees):
    answer = 0
    s={i:cnt for cnt,i in enumerate(skill)}
        
    for skill_tree in skill_trees:
        check=[]
        for tree in skill_tree:
            if tree in skill:
                check.append(s[tree])
        if not check:
            answer+=1
        elif check==sorted(check) and sorted(check)[-1]+1==len(check):
            answer+=1
    return answer

정렬을 활용해 풀었다.

skill의 순서대로 숫자를 dictionary에 매치시킨다.

skill_trees를 순환하면서

해당 tree가 skill에 있다면 순서대로 check에 집어넣는다.

과정을 마치고 check에 들어있는 순서가 skill의 순서와 같은 skill_tree의 갯수를 반환한다.

Discussion and feedback