![[DFS] 백준 24480번 : 알고리즘 수업 - 깊이 우선 탐색2 - Java](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2FF7XWB%2FbtsN42iOzdn%2FAAAAAAAAAAAAAAAAAAAAAJevpfj3qRuzpkJvhhqMYpMuHBecWNm1xtDS8NpwIvan%2Fimg.png%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1753973999%26allow_ip%3D%26allow_referer%3D%26signature%3DCihO%252F1rrWX%252BvCyhFd8WVaPIAYOk%253D)
[DFS] 백준 24480번 : 알고리즘 수업 - 깊이 우선 탐색2 - Java카테고리 없음2025. 5. 21. 13:18
Table of Contents
https://kimjunhyun.tistory.com/137 와 똑같은 문제
다만 한가지의 문제조건(오름차순 -> 내림차순)만 다르다
✅ 문제
https://www.acmicpc.net/problem/24480
🔑 풀이
import java.io.*;
import java.util.*;
public class Main {
static ArrayList<Integer>[] graph;
static boolean[] visited;
static int N, M, R;
static int[] answer;
static int order;
public static void dfs(int idx) {
visited[idx] = true;
answer[idx] = order;
order++;
for (int i = 0; i < graph[idx].size(); i++) {
int next = graph[idx].get(i);
if (!visited[next]) {
dfs(next);
}
}
}
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
StringTokenizer st = new StringTokenizer(br.readLine());
N = Integer.parseInt(st.nextToken());
M = Integer.parseInt(st.nextToken());
R = Integer.parseInt(st.nextToken());
// 1. graph에 연결 정보 채우기
graph = new ArrayList[N + 1];
for (int i = 0; i <= N; i++) {
graph[i] = new ArrayList<>();
}
visited = new boolean[N + 1];
answer = new int[N + 1];
order = 1;
for (int i = 0; i < M; i++) {
st = new StringTokenizer(br.readLine());
int x = Integer.parseInt(st.nextToken());
int y = Integer.parseInt(st.nextToken());
graph[x].add(y);
graph[y].add(x);
}
// 2. 내림차순 정렬
for (int i = 1; i <= N; i++) {
Collections.sort(graph[i], Collections.reverseOrder());
// graph[i].sort(Collections.reverseOrder());
}
// 3. dfs(재귀함수 호출)
dfs(R);
// 4. 출력
for (int i = 1; i <= N; i++) {
bw.write(String.valueOf(answer[i]));
bw.newLine();
}
bw.close();
br.close();
}
}
@킴준현 :: 차근차근 꾸준히
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!