// [문제 링크]: https://school.programmers.co.kr/learn/courses/30/lessons/87946 class Solution { boolean[] visit; int[][] dungeons; int max=0; private void dfs(int p, int use,int depth) { visit[p]=true; use -= dungeons[p][1]; for(int i=0;i=dungeons[i][0]) dfs(i,k,1); } return max; } }