[프로그래머스/파이썬] Level 2 스킬트리

bye9·2021년 3월 9일
0

알고리즘(코테)

목록 보기
85/130

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)

0개의 댓글