내 정답:
선행 스킬들을 제외한 다른 스킬들을 모두 제외시킨 스트링을 만든 후 남은 스킬들이 선행 스킬 트리를 그대로 따르는지를 테스트하는 방식으로 진행했다.
def solution(skill, skill_trees):
answer = 0
for st in skill_trees:
st_cut = ''.join(list(filter(lambda x: x in skill, st)))
for i in range(-1,len(skill)):
if skill[:i+1] == st_cut:
answer += 1
break
return answer
다른 사람들의 정답:
스킬들을 앞에서 하나씩 제거해가며 실제 선행 스킬 트리와 비교하는 방식으로 진행했다.
def solution(skill, skill_trees):
answer = 0
for skills in skill_trees:
skill_list = list(skill)
for s in skills:
if s in skill:
if s != skill_list.pop(0):
break
else:
answer += 1
return answer
'프로그래머스 알고리즘 문제 > Level 2' 카테고리의 다른 글
프로그래머스 Level 2 - 더 맵게 (0) | 2020.08.19 |
---|---|
프로그래머스 Level 2 - 기능개발 (0) | 2020.08.19 |
프로그래머스 Level 2 - 주식 가격 (0) | 2020.08.19 |
프로그래머스 Level 2 - 124 나라의 숫자 (0) | 2020.08.18 |
프로그래머스 Level 2 - 다리를 지나는 트럭 (0) | 2020.08.18 |