Algorithm/프로그래머스
[프로그래머스] Lv2 - 스킬트리 (파이썬)
_temp
2022. 5. 13. 13:53
https://programmers.co.kr/learn/courses/30/lessons/49993
코딩테스트 연습 - 스킬트리
programmers.co.kr
def solution(skill, skill_trees):
answer = 0
for tree in skill_trees:
index = []
for x in skill:
i = tree.find(x)
if i != -1:
index.append((i, x))
index.sort()
result = ''
for _, x in index:
result += x
if result and result[0] == skill[0] and result in skill:
answer += 1
elif not result:
answer += 1
return answer
풀이
1. 각 문제에서 스킬 트리의 인덱스를 앞에서부터 찾아서 index에 append
2. index를 정렬
3. index의 두 번째 값을 차례대로 result에 합치기
4. result가 '' 이거나 스킬 트리에 존재하면서 첫 번째 값이 스킬 트리 맨 앞 값이라면 answer += 1
- ''이면 항상 가능, 첫 번째 값은 항상 스킬 트리의 맨 앞 값이 여야함