on
[BOJ] 백준 [15681] 트리와 쿼리 JAVA
[BOJ] 백준 [15681] 트리와 쿼리 JAVA
import java.util. * ;
import java.io. * ;
import java.util.stream.Collectors;
public class Main {
static ArrayList < ArrayList < Integer > > tree;
static int n,root,query;
static int [] queryTable;
static boolean [] visit;
public static void main( String [] args) throws IOException {
BufferedReader br = new BufferedReader( new InputStreamReader( System . in ));
int [] input = Arrays.stream(br.readLine(). split ( " " ))
.mapToInt(Integer:: parseInt ).toArray();
n = input[ 0 ]; root = input[ 1 ]; query = input[ 2 ];
tree = new ArrayList < > ();
for ( int i = 0 ;i < = n;i + + ) tree. add ( new ArrayList < > ());
for ( int i = 0 ;i < n - 1 ;i + + ){
input = Arrays.stream(br.readLine(). split ( " " ))
.mapToInt(Integer:: parseInt ).toArray();
tree.get(input[ 0 ]). add (input[ 1 ]);
tree.get(input[ 1 ]). add (input[ 0 ]);
}
queryTable = new int [n + 1 ];
visit = new boolean [n + 1 ];
dfs(root);
while (query - - > 0 ){
int q = Integer. parseInt (br.readLine());
System . out . println (queryTable[q]);
}
}
private static int dfs( int cur) {
visit[cur] = true ;
int vertex = 1 ;
for (Integer next : tree.get(cur)) {
if (visit[next]) continue ;
vertex + = dfs(next);
}
queryTable[cur] = vertex;
return vertex;
}
}
from http://katastrophe.tistory.com/80 by ccl(A) rewrite - 2021-11-10 18:26:42