스킬트리 후보들을 담은 배열 skill_trees와, 선행스킬순서 skill이 매개변수로 주어질 때,
가능한 스킬트리 갯수를 return.
예시:
skills = "CBD"
skill_trees = ["BACDE", "CBADF", "AECB", "BDA"]
answer = 2
programmers.co.kr/learn/courses/30/lessons/49993
풀이
- 각각의 스킬트리 후보를 봤을 때,
skills에 있는 알파벳들이
순서대로 나타나면 가능한 스킬트리이다.
파이썬 구현
def solution(skill, skill_trees):
imposs = 0 # count the number of impossible skill trees
for i in skill_trees:
# filter letters that are in skill only
tmp = []
for j in i:
if j in skill:
tmp.append(j)
# see if the letters appear in the same order as skill
for i in range(len(tmp)):
if tmp[i] != skill[i]:
imposs += 1
break
answer = len(skill_trees)-imposs
return answer
다른 분들의 풀이
- for - else 문을 사용해서 더 깔끔하게 푸신 분들이 많았다!
- 내 풀이는 for문이 너무 많아서 마음에 안 들었는데, 이런 식으로 풀면 논리는 비슷해도 더 pythonic하고 깔끔해보였다.
def solution(skill, skill_trees):
answer = 0
for i in skill_trees:
tmp = ''
for j in i:
if j in skill:
tmp += j
if tmp == skill[:len(tmp)]:
answer+=1
return answer
깔끔!
'프로젝트들 > 코딩 테스트' 카테고리의 다른 글
[코딩테스트] 프로그래머스 - 기능 개발 (Lv.2) in Python 파이썬 (0) | 2021.02.14 |
---|---|
[코딩테스트] 프로그래머스 - 프린터 (Lv.2) in Python (0) | 2021.02.14 |
[코딩테스트] 프로그래머스 - 주식 가격 (Lv.2) in Python (0) | 2021.02.14 |
[코딩테스트] 프로그래머스 - 멀쩡한 사각형 (Lv.2) in Python (0) | 2021.02.14 |
[코딩테스트] 프로그래머스 - 여행경로 (Lv.3) in Python (0) | 2021.02.14 |
댓글