반응형
문제 출처
https://www.acmicpc.net/problem/15681
정답 풀이
뭘 구하라는건지 이해가 안갔는데,
서브트리 개수를 구하는 문제이다.
뜬금없이 쿼리? 이랬는데, 해당 문제에서 쿼리는 5,4,8 의 서브트리를 구하라는 3개의 쿼리가 있다.
서브트리는 뭘까?
=> 해당 노드를 루트로 하고, 그 아래 속하는 모든 자식 노드들을 포함하는 트리이다. !
정답 코드
const input = require('fs').readFileSync('/dev/stdin').toString().trim().split('\n');
const [n,r,q] = input[0].split(' ').map(v => +v)
const graph = Array.from({length: n+1}, () => []);
for(let i=1; i<n; i++){
const [u,v] = input[i].split(' ').map(v => +v);
graph[u].push(v);
graph[v].push(u)
}
const queries = [];
for(let i=n; i<n+q; i++){
queries.push(Number(input[i]))
}
const subtree = Array(n+1).fill(0)
const visited = Array(n+1).fill(false)
function dfs(node){
visited[node] = true;
subtree[node] = 1;
for(const next of graph[node]){
if(!visited[next]){
subtree[node] += dfs(next)
}
}
return subtree[node]
}
dfs(r);
const results = queries.map(query => subtree[query])
console.log(results.join('\n'))
반응형
'알고리즘 문제 풀기' 카테고리의 다른 글
백준 11054: 가장 긴 바이토닉 부분 수열 - javascript(dp) (0) | 2024.09.25 |
---|---|
백준 2239: 스도쿠 - javascript(백트래킹) (0) | 2024.09.25 |
백준15683 : 감시 - javascript(백트리킹,좋은문제) (0) | 2024.09.24 |
백준 9663: N-Queen - javascript(백트래킹) //좋은 문제 (0) | 2024.09.21 |
백준 15649 : N과 M(1) - javascript(백트래킹) (0) | 2024.09.21 |