CS/Algorithm

[백준 : 11725] 트리의 부모 찾기 - JAVA

yujindonut 2021. 5. 23. 20:09
728x90

import java.util.ArrayList;
import java.util.Scanner;

public class Main {

	static int N;
	static ArrayList<Integer>[] list;
	static int[] parents;
	static boolean[] visit;
	
	public static void dfs(int v) {
		visit[v] = true;
		
		for(int i : list[v]) {
			if(!visit[i]) {
				parents[i] = v;
				dfs(i);
			}
		}
	}
	public static void main(String[] args) {
		
		Scanner scan = new Scanner(System.in);
		N = scan.nextInt();
		
		list = new ArrayList[N + 1];
		parents = new int[N + 1];
		
		for(int i = 1; i <= N; i++)
			list[i] = new ArrayList<>();
		
		visit = new boolean[N + 1];
		
		for(int i = 0; i < N -1; i++) {
			int x = scan.nextInt();
			int y = scan.nextInt();
			list[x].add(y);
			list[y].add(x);
		}
		dfs(1);
		
		for(int i = 2; i <= N; i++) 
			System.out.println(parents[i]);
		scan.close();
	}
	
}
728x90