๐ŸŒท๐ŸŒผ๋ชจ์—ฌ๋ด์š” ๊ฐœ๋ฐœ์˜์ˆฒ๐ŸŒท๐ŸŒผ

[JAVA/ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] ํ”ผ๋กœ๋„ ๋ณธ๋ฌธ

๊ฐœ๋ฐœ/์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฌธ์ œํ’€์ด JAVA

[JAVA/ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] ํ”ผ๋กœ๋„

์š”์ผ์ด 2023. 3. 15. 17:25
๋ฐ˜์‘ํ˜•

๋ฌธ์ œ

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

 

ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค

์ฝ”๋“œ ์ค‘์‹ฌ์˜ ๊ฐœ๋ฐœ์ž ์ฑ„์šฉ. ์Šคํƒ ๊ธฐ๋ฐ˜์˜ ํฌ์ง€์…˜ ๋งค์นญ. ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค์˜ ๊ฐœ๋ฐœ์ž ๋งž์ถคํ˜• ํ”„๋กœํ•„์„ ๋“ฑ๋กํ•˜๊ณ , ๋‚˜์™€ ๊ธฐ์ˆ  ๊ถํ•ฉ์ด ์ž˜ ๋งž๋Š” ๊ธฐ์—…๋“ค์„ ๋งค์นญ ๋ฐ›์œผ์„ธ์š”.

programmers.co.kr

 

์ˆœ์—ด์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์ ์šฉํ•ด ํ’€์—ˆ์Šต๋‹ˆ๋‹ค

 

ํ’€์ด

class Solution {
    int answer = -1;

    boolean[] visited = {};
    int[][] d = {};

    public void DFS(int p, int sum) {

        for(int j = 0; j < d.length; j++) {
            if(!visited[j] && p >= d[j][0]) {
                visited[j] = true;
                DFS(p - d[j][1],sum+1);
                visited[j] = false;
            }
        }

        answer = Math.max(sum, answer);
    }


    public int solution(int k, int[][] dungeons) {

        d = dungeons;
        visited = new boolean[dungeons.length];

        DFS(k, 0);

        return answer;
    }
}
Comments