알고리즘
[프로그래머스/Python(파이썬)] 스킬트리
Rudy
2023. 2. 1. 00:02
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