반응형

 

-풀이

def solution(skill, skill_trees):
    #가능한 스킬트리 개수 세기
    answer = 0
    for i in skill_trees:
        #i에 skill과 같은 알파벳이 있으면 넣으려고 만든 ans변수
        ans = ''
        #skill_trees인덱스마다 있는 알파벳을 j에 하나씩 가져오기
        for j in i:
            #skill에 있는 알파벳이 j에 있으면 ans에 j넣기
            if j in skill:
                ans += j
        #ans변수가 skill에 있는 순서와 길이가 맞으면 answer에 1 더하기
        if ans == skill[0:len(ans)]:
            answer += 1
    return answer

-풀이 설명(느낀 점)

[30분 no sol] 원리는 어느정도 이해가 갔는데 반복문만 계속 중첩하고 == 기호로 같은 알파벳을 찾으려고 했는데 substring 오류가 뜨는 등 실행이 잘 되지 않았다. 그래서 결국 다른사람의 풀이를 보게 되었다. 여기서 내가 잘 안 쓰던 방법이 꽤 나와서 틀린 것 같다. 그 부분은 두 가지다.

1.skill_trees를 반복문 i로 돌리고 그 i를 바로 다시 반복문을 돌려서 skill_trees인덱스마다 알파벳 한개씩 바로 가져오게하는 것

2.if A in B를 사용해서 같은 알파벳을 비교해서 찾아주는 것

풀이를 보고나면 쉽고 이해하겠지만, 문제를 막상 풀 때는 이리저리 반복문만 여러 번 돌려본 것 같다는 생각이 든다. 이 두 가지 방법을 잘 활용하면 코드가 훨씬 짧아지고 간편할 수 있다는 것을 숙지하고 실전에서 활용해야겠다.

 

+ Recent posts