๋ฌธ์
ํด๋น ํฌ์คํ ์ ๋ฐฑ์ค์ 1325๋ฒ ํจ์จ์ ์ธ ํดํน ์ ์ ๊ทผ๊ณผ ํด๊ฒฐ ๋ฐฉ๋ฒ์ ์ค๋ช ํ ๊ธ ์ ๋๋ค.
์ ๋ต ์์ค ์ฝ๋๋ฅผ ํ์ธํ์๋ ค๋ฉด solve url ์์ ํ์ธ ๊ฐ๋ฅํฉ๋๋ค.
์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด ์ด๋ค ๋ฐฉ์์ผ๋ก ์ ๊ทผํด์ผ ํ๋์ง๋ฅผ ๋จผ์ ์๊ฐํด๋ณด์.
๋ฌธ์ ์ ๊ทผ
์ด ๋ฌธ์ ๋ ๊ฐ๋จํ dfs/bfs ๋ก ํด๊ฒฐํ ์ ์๋ ๋ฌธ์ ์ด๋ค.
์ด ์ ๋ ฅ์ด 1๋ง๊ฐ๊ฐ ์ต์ ์ ๊ฒฝ์ฐ ๋ค์ด์ค๊ณ ๊ฐ๊ฐ์ ๋ ธ๋์ dfs ๊ฒฐ๊ณผ๋ฅผ ํ์ํด์ผ ํ๋ ์กฐ๊ธ ๊ฐ๋น๊ฐ๋นํ๊ฒ ์๊ฐ ๋ณต์ก๋์ ๊ฑธ๋ฆด ์ ์๋ค.
๊ทธ๋์ ์ด ๋ฌธ์ ๋ ์ผ๋ฐ์ ์ธ dfs๋ก ํด๊ฒฐํ๋ฉด ์๊ฐ ์ด๊ณผ๊ฐ ๋ ์ ์๋ ๋ฌธ์ ์ด๋ค.
ํด๊ฒฐ๋ฒ
์ด ๋ฌธ์ ๋ ์ฌ๊ท dfs, ์คํ dfs ๋ฑ ์ฌ๋ฌ ๋ฐฉ๋ฒ์ ํตํด์ ๊ตฌํ์ ํด๋ณด์์ง๋ฏผ ๊ฒฐ๊ณผ๋ฅผ ์กฐ๊ธ ๋ ๋นจ๋ฆฌ ๋ผ ์ ์๋ bfs ๋ก ํด๊ฒฐํ์๋ค.
ํดํนํ ์ ์๋ ๋ ธ๋์ ์๋ฅผ ํํํ๊ธฐ ์ํด์ static ํ int ๋ฐฐ์ด์ ๋ ธ๋ ๋ฒํธ๋ฅผ ์ธ๋ฑ์ค๋ก ํ์ฌ ๊ฐ์ ์ฆ๊ฐ์ํค๋ ๋ฐฉํฅ์ผ๋ก ๊ฐ์ผ ํด๊ฒฐํ ์ ์๋ค.
์ ๋ต ์ฝ๋
public class Main {
private static ArrayList<ArrayList<Integer>> graph = new ArrayList<>();
private static boolean[] visited;
private static int[] result;
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[] fromTo = br.readLine().split(" ");
int from = Integer.parseInt(fromTo[0]);
int to = Integer.parseInt(fromTo[1]);
graph.get(from).add(to);
}
result = new int[n + 1];
for (int i = 1; i <= n; i++) {
visited = new boolean[n + 1];
getMaxPen(i);
}
int max = 0;
for (int i = 1; i <= n; i++) {
max = Math.max(max, result[i]);
}
for (int i = 1; i <= n; i++) {
if(result[i] == max) {
bw.write(i + " ");
}
}
bw.flush();
bw.close();
}
private static void getMaxPen(int x) {
Queue<Integer> queue = new LinkedList<>();
queue.add(x);
visited[x] = true;
while(!queue.isEmpty()) {
int front = queue.remove();
for(int value : graph.get(front)) {
if(!visited[value]) {
visited[value] = true;
queue.add(value);
result[value]++;
}
}
}
}
}
๋ฌธ์ ํ๊ณ
์ถ๋ ฅ์ ์ต์ ํ ํ๊ธฐ ์ํด์ static ํ ๋ณ์๋ฅผ ์ด๋ค๋ ์ฐจ์ด์ ๋ฌธ์ ์ ac๊ฐ ๋ฌ๋ผ์ก๋ค๋ ์ฌ์ค์ ์กฐ๊ธ ์ ๊ธฐํ๊ณ , ๋ค์์๋ ์ด๋ฐ ๋ฌธ์ ๊ฐ ๋์ค๋ฉด ์ถฉ๋ถํ ์จ๋ณผ๋ง ํ ๋ฌธ์ ํด๊ฒฐ ๋ฐฉ๋ฒ์ด์๋ค.
์ ๋ต ์์ค ์ฝ๋๋ฅผ ํ์ธํ์๋ ค๋ฉด solve url ์์ ํ์ธ ๊ฐ๋ฅํฉ๋๋ค.
'๐ป Computer Science > - Data Structure, Algorithm' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[์๊ณ ๋ฆฌ์ฆ PS] ๋ฐฑ์ค 1697๋ฒ ์จ๋ฐ๊ผญ์ง ์๋ฐ ๋ฌธ์ ํ์ด (0) | 2021.07.29 |
---|---|
[์๊ณ ๋ฆฌ์ฆ-PS] ๋ฐฑ์ค 7576๋ฒ ํ ๋งํ ์๋ฐ ๋ฌธ์ ํ์ด (0) | 2021.07.28 |
[์๊ณ ๋ฆฌ์ฆ-PS] ๋ฐฑ์ค 1092๋ฒ ๋ฐฐ ์๋ฐ ๋ฌธ์ ํ์ด (0) | 2021.07.21 |
[์๊ณ ๋ฆฌ์ฆ-PS] ๋ฐฑ์ค 1263 ์๊ฐ ๊ด๋ฆฌ ์๋ฐ ๋ฌธ์ ํ์ด (0) | 2021.07.20 |
[์๊ณ ๋ฆฌ์ฆ-PS] ๋ฐฑ์ค 1343๋ฒ ํด๋ฆฌ์ค๋ฏธ๋ ธ ์๋ฐ ๋ฌธ์ ํ์ด (0) | 2021.07.14 |
๋๊ธ