백준 24481 JS 풀이

hun2__2·2023년 8월 3일
0

코딩테스트

목록 보기
28/48

구하는 값

dfs 깊이

핵심 아이디어

dfs 돌리기

코드

const input = require("fs").readFileSync("dev/stdin").toString().trim().split("\n");

const [n, m, r] = input[0].split(" ").map(Number);

const graph = Array.from({ length: n + 1 }, () => []);
for (let i = 1; i <= m; i++) {
    const [a, b] = input[i].split(" ").map(Number);
    graph[a].push(b);
    graph[b].push(a);
}
graph.forEach((v) => v.sort((a, b) => a - b));
// console.log(graph);
const visited = new Array(n + 1).fill(-1);

function dfs(cur, dep) {
    visited[cur] = dep;

    for (const next of graph[cur]) {
        if (visited[next] === -1) {
            dfs(next, dep + 1);
        }
    }
}
dfs(r, 0);
console.log(visited.slice(1).join("\n"));
profile
과정을 적는 곳

0개의 댓글