본문 바로가기

Algorithm/프로그래머스

[프로그래머스] Lv.2 스킬트리

https://school.programmers.co.kr/learn/courses/30/lessons/49993

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

 

정답코드

(본인)

def solution(skill, skill_trees):
    answer = []
    for tree in skill_trees:
        allow_skill = []
        for alpha in tree:
            if alpha in skill:
                allow_skill.append(alpha)
        for idx, sk in enumerate(allow_skill):
            if sk != skill[idx]:
                answer.append(False)
                break
            
                
    return len(skill_trees) - len(answer)

 

 

(다른 사람 코드)

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

 

pop()을 이용하는 것을 생각만 했지 코드로 옮기는 방법을 몰랐는데 다른 분들이 해결하신 방법을 보고 너무 놀랐다..

본인이 푼 것도 다른 분들의 도움 덕에 해결한 문제였는데 pop()을 좀더 적극적으로 이용해야겠다.