728x90
https://programmers.co.kr/learn/courses/30/lessons/49993
def solution(skill, skill_trees):
answer = 0
for i in range(len(skill_trees)):
skill_ind = 0
for j in range(len(skill_trees[i])):
tmp_ind = skill.find(skill_trees[i][j])
# print(skill_ind, tmp_ind)
if tmp_ind == -1: continue
if tmp_ind == skill_ind:
skill_ind += 1
else:
break
else:
answer += 1
return answer
skill은 맨 처음 부터 시작해야하므로 순회할때마다 skill_ind를 0으로 초기화를 시켜준다.
그다음 skill_tree의 문자 하나씩 skill에 있는지 확인하면서 값이 없는 경우 continue로 넘어간다.
값이 있는 경우 앞부터 순회해야하므로 skill_ind와 현재 값이 같은지 확인하고 아닌 경우엔 break한다.
break없이 끝까지 순회한경우 사용할수 있는 스킬트리이므로 answer에 1을 더해준다.
이 방법으로 모든 스킬을 순회하면 답이 나온다.
이전에 풀었던 문제지만 다시 풀어보았다. 1월달엔 어렵게 풀었는데 이번엔 생각보다 쉽게 풀었다.
https://sinawi.tistory.com/133
'STUDY > Algorithm' 카테고리의 다른 글
[백준] 11054 가장 긴 바이토닉 부분 수열, python (0) | 2021.07.05 |
---|---|
[백준] 1780 종이의 개수, python (0) | 2021.07.04 |
[프로그래머스] [3차] 방금그곡, 2018 KAKAO BLIND RECRUITMENT, python (0) | 2021.06.26 |
[프로그래머스 ] 압축, 2018 KAKAO BLIND RECRUITMENT[3차], python (0) | 2021.06.26 |
[프로그래머스] 2개 이하로 다른 비트,월간 코드 챌린지 시즌2, python, C (0) | 2021.06.25 |