공부기록/백준

[백준] 11725번 트리의 부모 찾기

메델 2024. 2. 3. 15:26
import java.util.ArrayList;
import java.util.Scanner;

public class Main {
	
	static ArrayList<Integer>[] graph;
	static int N;
	static boolean[] visited;
	static int[] parents;
	
	static void DFS(int index) {
		
		for(int x: graph[index]) {
			if(!visited[x]) {
				visited[x] = true;
				parents[x] = index;
				DFS(x);
			}
		}
		
		
	}

    public static void main(String[] args) {
    	
    	Scanner kb = new Scanner(System.in);
    	
    	N = kb.nextInt();
    	graph = new ArrayList[N+1];
    	visited = new boolean[N+1];
    	parents = new int[N+1];
    	
    	for(int i=0; i<N+1; i++) {
    		graph[i] = new ArrayList<>();
    	}
    	
    	for(int i=0; i<N-1; i++) {
    		int a = kb.nextInt();
    		int b = kb.nextInt();
    		
    		graph[a].add(b);
    		graph[b].add(a);
    		
    	}
    	
    	DFS(1);
    	
    	StringBuilder sb = new StringBuilder();
    	
    	for(int i=2; i<=N; i++) {
    		sb.append(parents[i]+"\n");
    	}
    	
    	System.out.println(sb.toString());


    }
}