본문 바로가기
알고리즘

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

by Rudy 2023. 2. 1.

 

https://school.programmers.co.kr/learn/courses/30/lessons/49993

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

💜풀이


스킬 트리만큼 루프 돌면서 현재 스킬원소에서 skill에 들어있는 애가 있으면 temp에 넣는다.

그리고 temp랑 skill이 같으면 바로 answer+=1해주고, 아니라면 루프 돌면서 temp에서 꺼낸 현재의 값이 지금 현재 skill의 값과 같은지 아닌지 비교한다.

다르다면 바로 중지하고, 끝까지 돌았거나 만약 temp에 원소가 남지 않았으면 answer+=1해준다.


💜코드

from collections import deque
def solution(skill, skill_trees):
    answer = 0
    for currentSkill in skill_trees:
        temp=deque()
        for s in currentSkill:
            if s in skill:
                temp.append(s)
        if ''.join(temp)==skill:
            answer+=1
        else:
            for i in range(len(skill)):
                if len(temp)==0:
                    answer+=1
                    break
                t=temp.popleft()
                if skill[i]!=t:
                    break
            else:
                answer+=1
    return answer

 

댓글