From 58cde38c315491e03188726954eb5d2d25046a42 Mon Sep 17 00:00:00 2001 From: JHLEE325 <82587652+JHLEE325@users.noreply.github.com> Date: Fri, 19 Dec 2025 18:02:28 +0900 Subject: [PATCH] =?UTF-8?q?[20251219]=20BOJ=20/=20G4=20/=20Tree=20/=20?= =?UTF-8?q?=EC=9D=B4=EC=A4=80=ED=9D=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- JHLEE325/202512/19 BOJ G4 Tree.md | 76 +++++++++++++++++++++++++++++++ 1 file changed, 76 insertions(+) create mode 100644 JHLEE325/202512/19 BOJ G4 Tree.md diff --git a/JHLEE325/202512/19 BOJ G4 Tree.md b/JHLEE325/202512/19 BOJ G4 Tree.md new file mode 100644 index 00000000..9b2694ca --- /dev/null +++ b/JHLEE325/202512/19 BOJ G4 Tree.md @@ -0,0 +1,76 @@ +```java +import java.io.*; +import java.util.*; + +public class Main { + + static List[] graph; + static boolean[] visited; + static boolean isgraph; + + public static void main(String[] args) throws Exception { + BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); + StringBuilder sb = new StringBuilder(); + + int T = Integer.parseInt(br.readLine()); + + for (int t=0;t(); + } + + 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[a].add(b); + graph[b].add(a); + } + + if (M != N - 1) { + sb.append("graph\n"); + continue; + } + + dfs(1, -1); + + boolean connected = true; + for (int i = 1; i <= N; i++) { + if (!visited[i]) { + connected = false; + break; + } + } + + if (isgraph || !connected) { + sb.append("graph\n"); + } else { + sb.append("tree\n"); + } + } + + System.out.print(sb); + } + + static void dfs(int cur, int parent) { + visited[cur] = true; + + for (int next : graph[cur]) { + if (!visited[next]) { + dfs(next, cur); + } else if (next != parent) { + isgraph = true; + } + } + } +} +```