문제 확인

 

프로그래머스

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

programmers.co.kr

나의 풀이

  • 스킬 트리만 만족하면 되기 때문에, 관련 없는 다른 스킬들은 확인하지 않아도 된다.
  • 스킬 트리에 포함되는 스킬만 추출해서, 스킬을 찍은 순서를 확인하고 이것이 스킬 트리와 동일한 지 확인하면 된다.
# 선행 스킬? 어떤 스킬을 배우기 전에 먼저 배워야 하는 스킬
# 중복이 없으니까, 필요없는 문자열 제거하면 될듯!
import re

def solution(skill, skill_trees):
    # 가능한 스킬 트리 개수
    cnt = 0
    # 확인할 스킬 정보 : 스킬 트리만 만족하면 되기 때문에!
    need_skill = list(skill)
    # 각 스킬 트리 확인
    for trees in skill_trees:
        check_skill = ""
        # 확인할 스킬만 따로 빼서 문자열 만들기
        for c in trees:
            if c in need_skill:
                check_skill += c
        # 스킬 트리와 일치하는지 확인 
        if skill[:len(check_skill)] == check_skill:
            cnt += 1
    return cnt