https://programmers.co.kr/learn/courses/30/lessons/49993
그렇게 까다로웠던 편은 아니었던 문제.
나는 이렇게 접근했다.
'skill의 index를 가지고 풀면 해결 방안이 나오지 않을까?'
skill = 'CBD'
skill_trees = ["BACDE"]
멍 때리고 고민하고 있는 것보다 코딩을 해보는 게 가장 중요하니까
일단 무작정 생각나는 대로 해봤다.
<내가 써봤던 방법>
(다시 생각해 보니 빼도 될 것 같은데? 흠 이건 고민해 봐야겠다.)
BACDE의 인덱스를 뽑아오면 [1, 0, 2]이고, 이 값을 정렬하면 [0,1,2]이다.
두 개의 값이 같지 않으므로 이 스킬 트리는 가능하지 않다.
아래는 이 방법을 토대로 구현한 코드이다.
def solution(skill, skill_trees):
answer = 0
for i in skill_trees:
temp = []
for j in i:
if j in skill:
temp.append((skill.index(j)))
if temp == sorted([i for i in range(len(temp))]):
answer +=1
print(i)
return answer
더 좋은 방법이 있을 것 같긴 하다.
중간에 같지 않으면 빠져나올 수도 있지 않을까....