๋ฌธ์
ํด๋น ํฌ์คํ ์ ๋ฐฑ์ค์ 1389๋ฒ ์ผ๋น ๋ฒ ์ด์ปจ์ 6๋จ๊ณ ๋ฒ์น ์ ์ ๊ทผ๊ณผ ํด๊ฒฐ ๋ฐฉ๋ฒ์ ์ค๋ช ํ ๊ธ ์ ๋๋ค.
์ ๋ต ์์ค ์ฝ๋๋ฅผ ํ์ธํ์๋ ค๋ฉด solve url ์์ ํ์ธ ๊ฐ๋ฅํฉ๋๋ค.
์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด ์ด๋ค ๋ฐฉ์์ผ๋ก ์ ๊ทผํด์ผ ํ๋์ง๋ฅผ ๋จผ์ ์๊ฐํด๋ณด์.
๋ฌธ์ ์ ๊ทผ
์ด๋ฒ ๋ฌธ์ ๋ ์ด๋ ํ ๋ ธ๋์์ ๋ชจ๋ ๋ ธ๋ ๊น์ง ๋ฐฉ๋ฌธํ๋๋ฐ ๊ฑธ๋ฆฌ๋ ์ต์ ๋น์ฉ์ ๋ฌผ์ด๋ณด๋ ๋ฌธ์ ์ด๋ค.
ํด๊ฒฐ๋ฒ
DFS ๋ BFS ๋ชจ๋๋ฅผ ์ด์ฉํด์ ํ ์ ์์ง๋ง ๋๋ BFS ๋ฅผ ์ด์ฉํด์ ํ์๋ค.
์ฒ์์๋ ๋ฐฉ๋ฌธ ๋ฐฐ์ด๊ณผ ๋ ธ๋๊น์ง ๊ฑธ๋ฆฌ๋ ๋น์ฉ์ ํ๋์ ๋ฐฐ์ด์์ ๊ด๋ฆฌํ์ง๋ง, ๋ชจ๋ ๋ฐฉ๋ฌธ ๋ ธ๋์ ์ด ํฉ์ ๊ตฌํ ๋ ์ต์ด ๋ ธ๋๋ฅผ ๋ฐฉ๋ฌธ ์ฒ๋ฆฌํ๊ธฐ ์ํด 1์ ๋ํ ๊ฒ์ด ๋ฌธ์ ๋ฅผ ์ผ์ผ์ผฐ๊ธฐ ๋๋ฌธ์ ๋ฐฉ๋ฌธ ๋ฐฐ์ด๊ณผ ๊น์ด ๋ฐฐ์ด์ ๋ฐ๋ก ๋๋์ด์ ๊ด๋ฆฌํ๋ค.
์ ๋ต ์ฝ๋
public class Main {
private static List<List<Integer>> graph = new ArrayList<>();
private static boolean[] visited;
private static int[] depth;
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
String[] nm = br.readLine().split(" ");
int n = Integer.parseInt(nm[0]);
int m = Integer.parseInt(nm[1]);
for (int i = 0; i <= n; i++) {
graph.add(new ArrayList<>());
}
for (int i = 0; i < m; i++) {
String[] s = br.readLine().split(" ");
int from = Integer.parseInt(s[0]);
int to = Integer.parseInt(s[1]);
graph.get(from).add(to);
graph.get(to).add(from);
}
int min = Integer.MAX_VALUE;
int index = 0;
for(int i = 1; i <= n; i++) {
depth = new int[n + 1];
visited = new boolean[n + 1];
int kevinBaconNumber = getKevinBaconNumber(i);
if(min > kevinBaconNumber) {
min = kevinBaconNumber;
index = i;
}
}
bw.write(String.valueOf(index));
bw.flush();
bw.close();
}
private static int getKevinBaconNumber(int start) {
Queue<Integer> queue = new LinkedList<>();
queue.add(start);
visited[start] = true;
int sum = 0;
while(!queue.isEmpty()) {
int front = queue.remove();
for(int value : graph.get(front)) {
if(!visited[value]) {
visited[value] = true;
depth[value] = depth[front] + 1;
queue.add(value);
}
}
}
for (int i = 1; i < depth.length; i++) {
sum += depth[i];
}
return sum;
}
}
๋๊ธ