[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