문제 보러 가기 👈 클릭!
가능한 스킬순서의 모든 경우를 리스트 skillorder에 추가
=> 빈 문자열 temp = ''을 선언하고, 유저들이 만든 스킬문자열 중 각 스킬이 순서를 지켜야하는 스킬이면 temp에 더한다.
=> temp를 완성한 후 temp가 skill_order에 있을경우_ or temp의 길이가 0인경우(순서를 지켜야하는 스킬이 하나도 없는 경우) answer을 1만큼 증가시킨다.
구현 코드👇
def solution(skill, skill_trees):
answer = 0
skill_order = []
for idx in range(1, len(skill)+1):
skill_order.append(skill[:idx])
for skill_tree in skill_trees:
temp = ''
for s in skill_tree:
if s in skill:
temp += s
if temp in skill_order or len(temp) == 0:
answer += 1
return answer
📝 temp만큼의 길이를 가진, 가능한 스킬 순서는 하나만 존재함
=> 위와 같이 temp가 skill_order에 존재하는지 판단하는 방법 보다, temp와 같은 길이의 가능한 스킬 순서와 temp가 같은지 판단하는 코드를 사용하면 코드가 더 간결해짐 !
같은 방법이지만 더 간결한 코드👇
def solution(skill, skill_trees):
answer = 0
for skill_tree in skill_trees:
temp = ''
for s in skill_tree:
if s in skill:
temp += s
if temp == skill[:len(temp)]:
answer += 1
return answer