알고리즘

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

deedee2 2024. 5. 13. 01:13
728x90

😉 아이디어

1. _!skill_trees!_를 순회하며 _!스킬트리 변수 skill!_에 영향여부 확인

2.영향을 받는다면 _!스킬트리 변수 skill!_에서 _!popleft()!_실행

😉 풀이

from collections import deque

def solution(skill, skill_trees):
    answer = 0
    
    for tree in skill_trees:
        memo = deque(list(skill).copy())
        skills = list(tree)
        isValid = True
        
        for s in skills:
            if s in memo:
                if memo[0] == s:
                    memo.popleft()
                    continue
                else:
                    isValid = False
                    break
        
        if isValid:
            print('가능한 스킬트리', tree)
            answer += 1
    return answer

✔ 링크 : https://school.programmers.co.kr/learn/courses/30/lessons/49993?language=python3#fnref1