내 코드
def solution(skill, skill_trees):
answer = 0
for st in skill_trees:
s = list(skill)
for k in st:
if k in s:
if k == s[0]:
s.pop(0)
else:
break
else:
answer+=1
return answer
스킬트리의 문자열들을 하나씩 살펴보면서 답을 구했다.
"AECB"를 예로들면 A와 E는 skill에 없으므로 넘어간다. C는 skill에 존재하므로 가장 처음 배워야 할 스킬, 즉 skill[0]이 C인지 확인한다. 맞으면 s.pop(0)을 하여 첫 스킬을 배웠다고 가정한다. 이렇게 for 문을 돌리고 만약 배워야 할 스킬을 배우지 않았으면 break를 한다. break에 걸리지 않으면 answer+=1을 하여 답을 구한다.
다른사람 코드
def solution(skill, skill_trees):
answer = 0
for skills in skill_trees:
skill_list = list(skill)
for s in skills:
if s in skill:
if s != skill_list.pop(0):
break
else:
answer += 1
return answer
나랑 비슷하다!!!
'코딩테스트 > Python' 카테고리의 다른 글
[프로그래머스] 문자열 압축 (0) | 2021.09.08 |
---|---|
[프로그래머스] 짝지어 제거하기 (0) | 2021.09.08 |
[프로그래머스] 124 나라의 숫자 (0) | 2021.09.07 |
[프로그래머스] [3차] n진수 게임 (0) | 2021.09.07 |
[프로그래머스] 올바른 괄호 (0) | 2021.09.07 |