From a654fbd7e20a1447db2ef7928e3b65f5701b6ff3 Mon Sep 17 00:00:00 2001 From: JHLEE325 <82587652+JHLEE325@users.noreply.github.com> Date: Mon, 4 Aug 2025 08:01:06 +0900 Subject: [PATCH] =?UTF-8?q?[20250804]=20BOJ=20/=20G5=20/=20=EC=84=A0?= =?UTF-8?q?=EC=88=98=EA=B3=BC=EB=AA=A9=20/=20=EC=9D=B4=EC=A4=80=ED=9D=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...40\354\210\230\352\263\274\353\252\251.md" | 51 +++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 "JHLEE325/202508/04 BOJ G5 \354\204\240\354\210\230\352\263\274\353\252\251.md" diff --git "a/JHLEE325/202508/04 BOJ G5 \354\204\240\354\210\230\352\263\274\353\252\251.md" "b/JHLEE325/202508/04 BOJ G5 \354\204\240\354\210\230\352\263\274\353\252\251.md" new file mode 100644 index 00000000..9514eb77 --- /dev/null +++ "b/JHLEE325/202508/04 BOJ G5 \354\204\240\354\210\230\352\263\274\353\252\251.md" @@ -0,0 +1,51 @@ +```java +import java.io.*; +import java.util.*; + +public class Main { + public static void main(String[] args) throws Exception { + BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); + StringTokenizer st = new StringTokenizer(br.readLine()); + StringBuilder sb = new StringBuilder(); + + int n = Integer.parseInt(st.nextToken()); + int m = Integer.parseInt(st.nextToken()); + + List> graph = new ArrayList<>(n + 1); + for (int i = 0; i <= n; i++) graph.add(new ArrayList<>()); + + int[] indeg = new int[n + 1]; + int[] semester = new int[n + 1]; + + for (int i = 0; i < m; i++) { + st = new StringTokenizer(br.readLine()); + int a = Integer.parseInt(st.nextToken()); + int b = Integer.parseInt(st.nextToken()); + graph.get(a).add(b); + indeg[b]++; + } + + Deque q = new ArrayDeque<>(); + for (int i = 1; i <= n; i++) { + if (indeg[i] == 0) { + semester[i] = 1; + q.offer(i); + } + } + + while (!q.isEmpty()) { + int cur = q.poll(); + for (int nxt : graph.get(cur)) { + semester[nxt] = Math.max(semester[nxt], semester[cur] + 1); + if (--indeg[nxt] == 0) q.offer(nxt); + } + } + + for (int i = 1; i <= n; i++) { + sb.append(semester[i]).append(' '); + } + System.out.println(sb.toString().trim()); + } +} + +```