백준 11725(트리의 부모 찾기)

문제


코드

성공 코드
import java.io.*;
import java.util.*;


public class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        int n = Integer.parseInt(br.readLine());
        
        int visits[] = new int[n + 1];
        List<ArrayList<Integer>> list = new ArrayList<ArrayList<Integer>>();
        for(int i = 0; i <= n; i++)
        	list.add(new ArrayList<>());
        
        for(int i = 0; i < n - 1; i++) {
        	StringTokenizer st = new StringTokenizer(br.readLine());
        	int start = Integer.parseInt(st.nextToken());
        	int end = Integer.parseInt(st.nextToken());
        	list.get(start).add(end);
        	list.get(end).add(start);
        }
        
        Queue<Integer> que = new LinkedList<Integer>();
        que.offer(1);
        visits[1] = 1;
        while(!que.isEmpty()) {
        	int ing = que.poll();
        	for(int i = 0; i < list.get(ing).size(); i++) {
        		int next = list.get(ing).get(i);
        		if(visits[next] == 0) {
        			visits[next] = ing;
        			que.offer(next);
        		}
        	}
        }
        
        for(int i = 2; i <= n; i++) {
        	System.out.println(visits[i]);
        }
    }
}

좋은 웹페이지 즐겨찾기