Skip to content

Commit ad73e30

Browse files
committed
Feat: 실버2 트리의 부모 찾기
1 parent 61e773b commit ad73e30

File tree

1 file changed

+42
-0
lines changed

1 file changed

+42
-0
lines changed
+42
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
const local_input = `
2+
7
3+
1 6
4+
6 3
5+
3 5
6+
4 1
7+
2 4
8+
4 7
9+
`;
10+
11+
const input = process.execArgv.includes("--stack-size=65536")
12+
? require("fs").readFileSync("dev/stdin").toString()
13+
: local_input;
14+
15+
const inputs = input.trim().split("\n");
16+
let cnt = 0;
17+
const n = Number(inputs[0]);
18+
const arr = inputs.slice(1).map((v) => v.split(" ").map((v2) => Number(v2)));
19+
const map = {};
20+
arr.forEach((v) => {
21+
if (map[v[0]]) map[v[0]].push(v[1]);
22+
else map[v[0]] = [v[1]];
23+
if (map[v[1]]) map[v[1]].push(v[0]);
24+
else map[v[1]] = [v[0]];
25+
});
26+
const parents = Array.from({ length: n + 1 }, () => 0);
27+
const visited = Array.from({ length: n + 1 }, () => false);
28+
29+
const que = [[1, map[1]]];
30+
31+
while (que.length > 0) {
32+
const [cur, nodeArr] = que.shift();
33+
34+
visited[cur] = true;
35+
36+
for (const node of nodeArr) {
37+
if (visited[node]) continue;
38+
parents[node] = cur;
39+
que.push([node, map[node]]);
40+
}
41+
}
42+
console.log(parents.slice(2).reduce((a, v) => a + v + "\n", ""));

0 commit comments

Comments
 (0)