๐ ์๊ฐ์ด๊ณผ๊ฐ ๋ฐ์ํ์๋๋ฐ ํ์ํ ๋ ธ๋๋ฅผ ์ฒดํฌํ ๋, checked ๋ฐฐ์ด์๋ค ๋ ธ๋ ๊ฐ์ pushํ๊ณ includes๋ก ํ์ธํ๋ค. ์ด ๋ถ๋ถ์ ์๋ ์ฝ๋์ ๊ฐ์ด ์์ ํ๋ ๋ง์๋ค.
์ฝ๋
const fs = require('fs');
const input = fs.readFileSync('/dev/stdin').toString().trim().split('\n');
const N = +input.shift();
const tree = Array.from(new Array(N + 1), () => []);
for (let i = 0; i < N - 1; i++) {
const [a, b] = input[i].split(" ").map(Number);
tree[a].push(b);
tree[b].push(a);
}
const parents = [];
let willCheck = [1];
let checked = new Array(N+1).fill(0);
while (willCheck.length) {
const check = willCheck.pop();
checked[check] = 1;
for (let i = 0; i < tree[check].length; i++) {
const child = tree[check][i];
if (checked[child] === 0) {
parents[child-2] = check;
willCheck.push(child);
}
}
}
console.log(parents.join("\n"));