Skip to content

Commit 2e03f82

Browse files
authored
Create PG_양과늑대.java
1 parent 42dd5a5 commit 2e03f82

File tree

1 file changed

+40
-0
lines changed

1 file changed

+40
-0
lines changed

250428/PG_양과늑대.java

+40
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
import java.util.*;
2+
3+
class Solution {
4+
List<List<Integer>> list;
5+
int answer = 0;
6+
7+
public int solution(int[] info, int[][] edges) {
8+
list = new ArrayList<>();
9+
10+
for (int i = 0; i < info.length; i++) list.add(new ArrayList<>());
11+
12+
for (int i = 0; i < edges.length; i++) {
13+
list.get(edges[i][0]).add(edges[i][1]);
14+
}
15+
16+
List<Integer> next = new ArrayList<>();
17+
next.add(0);
18+
19+
dfs(0, 0, 0, info, next);
20+
21+
return answer;
22+
}
23+
24+
public void dfs(int current, int sheep, int wolf, int[] info, List<Integer> available) {
25+
if (info[current] == 0) sheep++;
26+
else wolf++;
27+
28+
if (sheep <= wolf) return;
29+
30+
answer = Math.max(answer, sheep);
31+
32+
List<Integer> nextNodes = new ArrayList<>(available);
33+
nextNodes.remove(Integer.valueOf(current));
34+
nextNodes.addAll(list.get(current));
35+
36+
for (int next : nextNodes) {
37+
dfs(next, sheep, wolf, info, nextNodes);
38+
}
39+
}
40+
}

0 commit comments

Comments
 (0)