본문 바로가기
알고리즘 & 자료구조/백준

백준 24480

by 신재권 2022. 6. 16.
package baekjoon.DFS와BFS;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.Comparator;
import java.util.StringTokenizer;

//https://www.acmicpc.net/problem/24480
public class Main24480 {

	static int N, M, R, cnt = 1;

	static ArrayList<Integer> list[];
	static int[] visited;

	public static void main(String[] args) throws Exception {
		input();
		DFS(R);
		for (int i = 1; i <= N; i++) {
			System.out.println(visited[i]);
		}
	}

	private static void DFS(int start) {
		visited[start] = cnt++;
		for (Integer d : list[start]) {
			if (visited[d] > 0)
				continue;
			DFS(d);
		}
	}

	private static void input() throws IOException {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		StringTokenizer st = new StringTokenizer(br.readLine());
		N = Integer.parseInt(st.nextToken());
		M = Integer.parseInt(st.nextToken());
		R = Integer.parseInt(st.nextToken());
		list = new ArrayList[N + 1];
		visited = new int[N + 1];
		for (int i = 1; i <= N; i++) {
			list[i] = new ArrayList<>();
		}
		for (int i = 0; i < M; i++) {
			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);
		}
		for (int i = 1; i <= N; i++) {
			list[i].sort(Comparator.reverseOrder());
		}
	}

}

'알고리즘 & 자료구조 > 백준' 카테고리의 다른 글

백준 24445  (0) 2022.06.16
백준 24444  (0) 2022.06.16
백준 24479  (0) 2022.06.16
백준 2667  (0) 2022.06.05
백준 9663  (0) 2022.05.22