๋ฌธ์ (์ถ์ฒ: https://www.acmicpc.net/problem/24484)
< ์๊ณ ๋ฆฌ์ฆ ์์ - ๊น์ด ์ฐ์ ํ์ 6 >
๋ฌธ์ ํ์ด
dfs๋ก ํ์ํ๋ฉด์ ๋ ธ๋์ ๊น์ด์ ๋ ธ๋์ ๋ฐฉ๋ฌธ ์์๋ฅผ ์ ์ฅํด ์ค๋ค.
my solution (Java)
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.Collections;
import java.util.StringTokenizer;
public class _24484_ { // ์๊ณ ๋ฆฌ์ฆ ์์
- ๊น์ด ์ฐ์ ํ์ 6
static ArrayList<ArrayList<Integer>> arr;
static long d[], t[];
static int index;
public static void main(String[] args) throws IOException {
BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st = new StringTokenizer(bf.readLine());
int n = Integer.parseInt(st.nextToken());
int m = Integer.parseInt(st.nextToken());
int r = Integer.parseInt(st.nextToken()) - 1;
arr = new ArrayList<>();
d = new long[n];
t = new long[n];
for (int i = 0; i < n; i++) {
arr.add(new ArrayList<>());
d[i] = -1;
}
for (int i = 0; i < m; i++) {
st = new StringTokenizer(bf.readLine());
int u = Integer.parseInt(st.nextToken()) - 1;
int v = Integer.parseInt(st.nextToken()) - 1;
arr.get(u).add(v);
arr.get(v).add(u);
}
for (int i = 0; i < n; i++) {
Collections.sort(arr.get(i), Collections.reverseOrder());
}
d[r] = 0;
t[r] = 1;
index = 2;
dfs(r);
long result = 0;
for (int i = 0; i < n; i++) {
result += d[i] * t[i];
}
System.out.println(result);
}
private static void dfs(int r) {
for (int i = 0; i < arr.get(r).size(); i++) {
if (d[arr.get(r).get(i)] == -1) {
d[arr.get(r).get(i)] = d[r] + 1;
t[arr.get(r).get(i)] = index++;
dfs(arr.get(r).get(i));
}
}
}
}
Main
- ์ ์ ์ ์ (n), ๊ฐ์ ์ ์ (m), ์์ ์ ์ (r) ์ ๋ ฅ
- arr : ์ธ์ ๋ฆฌ์คํธ
d : ๋ ธ๋์ ๊น์ด (๋ฐฉ๋ฌธ ์ฌ๋ถ๋ฅผ ํ์ธํ๊ธฐ ์ํด -1๋ก ์ด๊ธฐํ)
t : ๋ ธ๋์ ๋ฐฉ๋ฌธ ์์
- ์๋ฐฉํฅ์ผ๋ก ๊ทธ๋ํ ์ ์ฅ ๋ฐ ๋ด๋ฆผ์ฐจ์์ผ๋ก ์ ๋ ฌ
- ์์ ์ ์ ์ ๋ ธ๋์ ๊น์ด๋ 0, ๋ ธ๋์ ๋ฐฉ๋ฌธ ์์๋ 1๋ก ์ด๊ธฐํ ํ dfs ํจ์ ํธ์ถ
- result: d x t ํฉ
dfs(์์ ์ ์ r)
- ์์ ์ ์ ์ ์ธ์ ์ ์ ์ ์๋งํผ ๋ฐ๋ณตํ์ฌ ์์ง ๋ฐฉ๋ฌธํ์ง ์์ ๋ ธ๋์ธ์ง ํ์ธ (๋ ธ๋์ ๊น์ด๊ฐ -1์ด๋ฉด ์์ง ๋ฐฉ๋ฌธ x) -> ๋ ธ๋์ ๊น์ด์ ๋ ธ๋์ ๋ฐฉ๋ฌธ ์์ ์ ์ฅ ํ dfs ํธ์ถ
* ๋ ธ๋์ ๊น์ด๋ ์ ๋ ธ๋์ ๊น์ด +1์ด๋ค.
๋ง๋ฌด๋ฆฌ๐ค
'๐Algorithm > ๐ฅBaekjoon' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Baekjoon] 11060_์ ํ ์ ํ (0) | 2023.06.12 |
---|---|
[Baekjoon] 26169_์ธ ๋ฒ ์ด๋ด์ ์ฌ๊ณผ๋ฅผ ๋จน์ (0) | 2023.06.09 |
[Baekjoon] 24483_์๊ณ ๋ฆฌ์ฆ ์์ - ๊น์ด ์ฐ์ ํ์ 5 (0) | 2023.06.06 |
[Baekjoon] 24482_์๊ณ ๋ฆฌ์ฆ ์์ - ๊น์ด ์ฐ์ ํ์ 4 (0) | 2023.06.05 |
[Baekjoon] 24481_์๊ณ ๋ฆฌ์ฆ ์์ - ๊น์ด ์ฐ์ ํ์ 3 (0) | 2023.06.04 |