๋ฌธ์ (์ถ์ฒ: https://www.acmicpc.net/problem/24481)
< ์๊ณ ๋ฆฌ์ฆ ์์ - ๊น์ด ์ฐ์ ํ์ 3 >
๋ฌธ์ ํ์ด
dfs๋ก ํ์ํ๋ฉด์ ๋ ธ๋์ ๊น์ด๋ฅผ ์ ์ฅํด ์ค๋ค.
my solution (Java)
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.util.ArrayList;
import java.util.Collections;
import java.util.StringTokenizer;
public class _24481_ { // ์๊ณ ๋ฆฌ์ฆ ์์
- ๊น์ด ์ฐ์ ํ์ 3
static ArrayList<ArrayList<Integer>> arr;
static int d[];
public static void main(String[] args) throws IOException {
BufferedReader bf=new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw=new BufferedWriter(new OutputStreamWriter(System.out));
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 int[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));
}
d[r]=0;
dfs(r);
for(int i=0; i<n; i++) {
bw.write(d[i]+"\n");
}
bw.flush();
}
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;
dfs(arr.get(r).get(i));
}
}
}
}
Main
- ์ ์ ์ ์ (n), ๊ฐ์ ์ ์ (m), ์์ ์ ์ (r) ์ ๋ ฅ
- arr : ์ธ์ ๋ฆฌ์คํธ
d : ๋ ธ๋์ ๊น์ด (๋ฐฉ๋ฌธ ์ฌ๋ถ๋ฅผ ํ์ธํ๊ธฐ ์ํด -1๋ก ์ด๊ธฐํ)
- ์๋ฐฉํฅ์ผ๋ก ๊ทธ๋ํ ์ ์ฅ ๋ฐ ์ค๋ฆ์ฐจ์ ์ ๋ ฌ
- ์์ ์ ์ ์ ๋ ธ๋์ ๊น์ด๋ 0์ผ๋ก ์ด๊ธฐํ ํ dfs ํจ์ ํธ์ถ
- d ๋ฐฐ์ด ์ถ๋ ฅ
dfs(์์ ์ ์ r)
- ์์ ์ ์ ์ ์ธ์ ์ ์ ์ ์๋งํผ ๋ฐ๋ณตํ์ฌ ์์ง ๋ฐฉ๋ฌธํ์ง ์์ ๋ ธ๋์ธ์ง ํ์ธ (๋ ธ๋์ ๊น์ด๊ฐ -1์ด๋ฉด ์์ง ๋ฐฉ๋ฌธ x) -> ๋ ธ๋์ ๊น์ด ์ ์ฅ ํ dfs ํธ์ถ
* ๋ ธ๋์ ๊น์ด๋ ์ ๋ ธ๋์ ๊น์ด +1์ด๋ค.
๋ง๋ฌด๋ฆฌ๐ค
'๐Algorithm > ๐ฅBaekjoon' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Baekjoon] 24483_์๊ณ ๋ฆฌ์ฆ ์์ - ๊น์ด ์ฐ์ ํ์ 5 (0) | 2023.06.06 |
---|---|
[Baekjoon] 24482_์๊ณ ๋ฆฌ์ฆ ์์ - ๊น์ด ์ฐ์ ํ์ 4 (0) | 2023.06.05 |
[Baekjoon] 24446_์๊ณ ๋ฆฌ์ฆ ์์ - ๋๋น ์ฐ์ ํ์ 3 (1) | 2023.06.03 |
[Baekjoon] 24447_์๊ณ ๋ฆฌ์ฆ ์์ - ๋๋น ์ฐ์ ํ์ 4 (0) | 2023.06.02 |
[Baekjoon] 9944_NxM ๋ณด๋ ์์ฃผํ๊ธฐ (0) | 2023.06.01 |