문제
풀이

📝 Problem Summary

💡 Idea

핵심 관찰

풀이 과정

⏱ Complexity

  • 시간 복잡도: O()
  • 공간 복잡도: O()

🔑 Code

import java.util.*;

class Solution {
    public int func(int cur_k, int cur_trial, int[][] dungeons, boolean[] vis){
        int max_cnt = cur_trial;
        for(int i = 0; i < dungeons.length; i++){
            if(cur_k < dungeons[i][0] || vis[i]) continue;
            vis[i] = true;
            max_cnt = Math.max(max_cnt,func(cur_k-dungeons[i][1], cur_trial+1, dungeons, vis));
            vis[i] = false;
        }
        return max_cnt;
    }
    
    public int solution(int k, int[][] dungeons) {
        return func(k, 0, dungeons, new boolean[dungeons.length]);
    }
}

🗨️ Side Notes

  • 막힌 부분:
  • 새로 배운 점:
  • 다시 풀 때 주의할 점: