programmers/프로그래머스-스킬트리-python

cosmos·2022년 8월 17일
0
post-thumbnail

문제

코드

# https://school.programmers.co.kr/learn/courses/30/lessons/49993
# programmers, level2: 스킬트리, python3
def solution(skill: str, skill_trees: list) -> int:
    # priority: 주어진 스킬 문자열의 우선순위를 담는 딕셔너리
    answer, priority = len(skill_trees), {x: i for i, x in enumerate(skill)}

    for x in skill_trees:  # 스킬트리 요소로 for문 반복
        match = 0  # 스킬이 맞는 순서를 담은 변수

        for y in x:
            if y in skill:  # skill_trees list 요소에 skill 문자열의 요소가 포함된다면
                if priority[y] == match:  # 우선순위에 맞게 차례대로 나왔을 시,
                    match += 1    # 다음 우선순위가 나오도록 match += 1
                else:  # 우선순위에 맞지않게 나왔을 시,
                    answer -= 1  # 주어진 skiil_trees list의 개수에 -1
                    break        # 현재 반복문 탈출

    return answer

if __name__ == '__main__':
    print(solution("CBD", ["BACDE", "CBADF", "AECB", "BDA"]))  # 2

결과

출처 & 깃허브

programmers 스킬트리
github

0개의 댓글