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
- ''이면 항상 가능, 첫 번째 값은 항상 스킬 트리의 맨 앞 값이 여야함
'Algorithm > 프로그래머스' 카테고리의 다른 글
[프로그래머스] Lv2 - 가장 큰 정사각형 찾기 (파이썬) (0) | 2022.05.14 |
---|---|
[프로그래머스] Lv2 - 방문 길이 (파이썬) (0) | 2022.05.13 |
[프로그래머스] Lv2 - 쿼드압축 후 개수 세기 (파이썬) (0) | 2022.05.13 |
[프로그래머스] Lv2 - n^2 배열 자르기 (파이썬) (0) | 2022.05.13 |
[프로그래머스] Lv2 - 점프와 순간 이동 (파이썬) (0) | 2022.05.04 |