programmers.co.kr/learn/courses/30/lessons/49993#fnref1
[방법 1]
skill_trees에 있는 skill_tree를 하나씩 check함수에서 확인
check함수에서는
1. 한글자씩 skill에 포함되어있는지 확인
2. 포함되어 있다면, 몇번째 skill인지 확인한 후
2-1. 0번째라면, check_skill 리스트에 해당 번째 값을 1로
2-2. 0번째 이후라면, 그 전 스킬이 선행되었는지 안되었는지 확인
def solution(skill, skill_trees):
def check (skill, skill_tree):
check_skill=[0]*len(skill)
for st in skill_tree:
for i in range(len(skill)):
if st==skill[i]:
index=skill.index(st)
if index == 0:
check_skill[index]=1
else:
if check_skill[index-1]==0:
return 0
else:
check_skill[index]=1
return 1
result=0
for skill_tree in skill_trees:
result += check(skill, skill_tree)
return result
[방법 2]
skill_tree안에 포함된 skill들을 check_list에 다 넣고, skill과 비교하여 순서를 확인
def solution(skill, skill_trees):
result=0
for skill_tree in skill_trees:
check_list=[]
check_flag=True
for st in skill_tree:
if st in skill:
check_list.append(st)
for i in range(len(check_list)):
if not skill[i]==check_list[i]:
check_flag=False
break
if check_flag==True:
result+=1
return result
'코딩 테스트 > 문제 풀기' 카테고리의 다른 글
[프로그래머스] 124 나라의 숫자 (0) | 2021.03.25 |
---|---|
[프로그래머스] 기능 개발 (0) | 2021.03.25 |
[프로그래머스] 다리를 지나는 트럭 (0) | 2021.03.24 |
[프로그래머스] 프린터 (0) | 2021.03.24 |
[프로그래머스] 멀쩡한 사각형 (0) | 2021.03.24 |
댓글