습관처럼
programmers [python] : 스킬트리 본문
스킬트리 문제:
유저의 스킬트리중 가능하지 않은 스킬트리를 제외하고 가능한 스킬트리의 개수를 구하다
접근 방식:
유저의 스킬트리중 규칙에 해당되지 않는 스킬트리를 제외하고 규칙을 따라야 하는 스킬만을 추려서 순서를 확인한다. 다음 순서가 맞는지 확인.
나의 풀이
def solution(skill, skill_trees):
answer = 0
result=[]
for idx,i in enumerate(skill_trees):
result=[]
for user_skill in i: #유저의 스킬에서 지켜야할 스킬트리의 스킬을 가지고 있는 경우 파악
if user_skill in skill:
result.append(skill.index(user_skill)) #가지고 있다면 오리지널 스킬순서 추가
set(result) #중복을 제거
cnt=0
for i in range(len(result)): #유저의 스킬트리와 스킬의 룰이 맞는 경우 파악
if result[i]==i: cnt+=1
if cnt==len(result): answer+=1 #전체 개수 파악
return answer
1번의 스킬을 찍기 위해서는 0을 찍어야하고 2번이 스킬트리를 찍기 위해서는 0,1을 찍어야 합니다. 이러한 규칙을 통해서 규칙이 해당되는 스킬의 개수만큼 인덱스 순서 그대로 스킬이 찍혀야 합니다.
규칙이 잘 이해가 안되시는 분은 출력을 해보시면 쉽게 이해하실수 있습니다.
funny algorithms~
'Algorithms > programmers' 카테고리의 다른 글
programmers [python] : 2018 KAKAO BLIND RECRUITMENT 뉴스 클러스터링 (0) | 2019.12.23 |
---|---|
programmers [python] : 2020 KAKAO BLIND RECRUITMENT 문자열 압축 (0) | 2019.12.22 |
programmers [python] : 2020 KAKAO BLIND RECUITMENT 괄호 변환 (0) | 2019.12.21 |
programmers [python] : 주식가격 (0) | 2019.12.20 |
programmers [python] : 쇠막대기 (0) | 2019.12.18 |