본문 바로가기

Coding Test/Programmers

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

728x90

 

 

나의 풀이

def solution(skill, skill_trees):
    skill = list(skill)
    answer = 0

    for tree in skill_trees:
        stack = []        
        flag = True
        for x in tree:
            if x in skill:
                for y in skill[0:skill.index(x)]:
                    if y not in stack:
                        flag = False
                        break
                if flag:
                    stack.append(x)
                else:
                    break
        if flag:
            answer += 1

    return answer

 

 

for-else를 활용한 풀이

def solution(skill, skill_trees):
    answer = 0

    for skills in skill_trees:
        skill_list = list(skill)

        for s in skills:
            if s in skill:
                if s != skill_list.pop(0):
                    break
        else:
            answer += 1

    return answer

 

 

 

반응형