카테고리 없음

백준 11725 - 트리의 부모 찾기 JAVA 실버 2

_hanbxx_ 2024. 3. 24. 15:24
728x90

 

https://www.acmicpc.net/problem/11725

 

11725번: 트리의 부모 찾기

루트 없는 트리가 주어진다. 이때, 트리의 루트를 1이라고 정했을 때, 각 노드의 부모를 구하는 프로그램을 작성하시오.

www.acmicpc.net

 

import java.util.*;
import java.lang.*;
import java.io.*;

// The main method must be in a class named "Main".
class Main {
    public static ArrayList<Integer> list[];
    public static int[] parent;
    public static boolean[] visited;
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        int N = Integer.parseInt(br.readLine());
        list = new ArrayList[N+1];
        parent = new int[N+1];
        visited = new boolean[N+1];

        for (int i = 0; i<N+1;i++) {
            list[i] = new ArrayList<>();
        }

        //초기화
        for (int i = 0; i <N-1; i++) {
            StringTokenizer st = new StringTokenizer(br.readLine());
            int a = Integer.parseInt(st.nextToken());
            int b = Integer.parseInt(st.nextToken());

            list[a].add(b);
            list[b].add(a);
        }

        dfs(1);
        for (int i = 2; i< parent.length; i++ ) {
            System.out.println(parent[i]);
        }
    }
    public static void dfs(int num) {
        visited[num] =true;
        for (int i : list[num]) {
            if (!visited[i]) {
                parent[i] = num;
                dfs(i);
            }
        }
    }
}

 

  • ArrayList<Integer> list[];
    • list = new ArrayList[N+1]; 
    • 다차원 배열 만드는 법을 배웠다

 

728x90