def solution(skill, skill_trees):
answer = 0
for s in skill_trees:
if possible(skill,s):
answer += 1
return answer
def possible(skill,s):
arr = [] #skill순서대로 s에 있는 인덱스 담는 배열
for i in skill:
arr.append(s.find(i))
for i in range(0,len(arr)-1):
if arr[i] > arr[i+1]:
if arr[i+1] != -1:
return False
if arr[i] == -1:
if arr[i+1] >= 0:
return False
return True
from collections import deque
def solution(skill, skill_trees):
answer = 0
for skill_tree in skill_trees:
q = deque(list(skill))
for s in skill_tree:
if s in q:
if s != q.popleft():
break
else:
answer += 1
return answer
주어진 스킬을 리스트화 시켜서
스킬트리별로 스킬에 있는것이라면 pop()하여 같지않다면 break
같지 않다는 것은 순서가 다르다는 뜻이기 때문이다..
for-else문을 이용하여 break문에 걸리지 않는다면 잘 통과했다는 뜻이므로 answer + 1 을 해준다.