알고리즘 - 선행스킬

최민석·2021년 1월 2일
0

Algorithm

목록 보기
5/15
post-thumbnail

Programers Algorithm

SkillTree - 선행스킬

선행 스킬이란 어떤 스킬을 배우기 전에 먼저 배워야 하는 스킬을 뜻합니다.

예를 들어 선행 스킬 순서가 스파크 → 라이트닝 볼트 → 썬더일때,
썬더를 배우려면 먼저 라이트닝 볼트를 배워야 하고,
라이트닝 볼트를 배우려면 먼저 스파크를 배워야 합니다.

위 순서에 없는 다른 스킬(힐링 등)은 순서에 상관없이 배울 수 있습니다.
따라서 스파크 → 힐링 → 라이트닝 볼트 → 썬더와 같은 스킬트리는 가능하지만,
썬더 → 스파크 or 라이트닝 볼트 → 스파크 → 힐링 → 썬더와 같은 스킬트리는 불가능합니다.

선행 스킬 순서 skill과 유저들이 만든 스킬트리1를 담은 배열 skill_trees가 매개변수로 주어질 때, 가능한 스킬트리 개수를 return 하는 solution 함수를 작성해주세요.


느낀점

  • 알고리즘 문제를 풀면서 처음으로 접한 Stack 관련 문제입니다.
  • 스택의 peak(), pop(), push(), 선입후출에 관한 내용은 잘 알고 있지만, 이는 C/C++에서만 구현해서 python에서는 처음 구현해보는 문제 였습니다.
  • 그래서 Stack의 특성을 잘 살리진 못하였습니다.
    이 문제를 시작으로 다양한 Stack 문제를 접할 것 입니다.
profile
되돌아보며 성장합니다🔨

0개의 댓글