문제 : https://programmers.co.kr/learn/courses/30/lessons/49993
이 문제는 스킬의 순서만 신경쓰면 되는 문제다. 나는 파이썬으로 코딩하니까 list.index() 를 썼다.
- 우선 skill_trees 를 돌면서 ->st로 만듦
- idx 관리함. 이걸로 돌고있는 현재 skill의 index를 관리한다.
- skill_trees 의 각 skill 순서의 원소를 뽑는다 ->stt
- stt 가 skill에 없다 ? 그럼 무시해도 좋음 -> continue
- idx< skill.index(stt) 이 부분이 핵심인데, 지금 보고있는게 index 보다 크면 -> 먼저 배워야할 스킬을 안배웠다는 뜻
- 바로 ispossible False 로 바꿔버리고 break
- 아니면 -> 스킬 순서에 맞다 idx+=1
- 그다음에 st 단위로 answer 가능갯수를 +1 한다.
- skill_trees 의 각 skill 순서의 원소를 뽑는다 ->stt
def solution(skill, skill_trees):
answer = 0
for st in skill_trees:
idx = 0
ispossible = True
for stt in st:
if stt not in skill:
continue
if idx < skill.index(stt):
ispossible = False
break
else:
idx+=1
if ispossible:
answer+=1
return answer
'취준 > 프로그래머스' 카테고리의 다른 글
[프로그래머스 Programmers][Python] 전화번호 목록 (0) | 2020.01.24 |
---|---|
[프로그래머스 Programmers][Python] 등굣길 (0) | 2020.01.24 |
[프로그래머스 Programmers][Python] 이중우선순위큐 (0) | 2020.01.23 |
[프로그래머스 Programmers][Python] 베스트앨범 (0) | 2020.01.22 |
[프로그래머스 Programmers][Python] 올바른 괄호 (0) | 2020.01.22 |