From 04c89cfdded51ccc005f12110e68999121d5a5cc Mon Sep 17 00:00:00 2001 From: suyeun84 <81475092+suyeun84@users.noreply.github.com> Date: Tue, 4 Feb 2025 09:49:26 +0900 Subject: [PATCH] =?UTF-8?q?[20250204]=20BOJ=20/=20=EA=B3=A8=EB=93=9C3=20/?= =?UTF-8?q?=20=EA=B5=B0=EC=82=AC=20=EC=9D=B4=EB=8F=99=20/=20=EA=B9=80?= =?UTF-8?q?=EC=88=98=EC=97=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...0\354\202\254 \354\235\264\353\217\231.md" | 66 +++++++++++++++++++ 1 file changed, 66 insertions(+) create mode 100644 "suyeun84/202502/04 BOJ G3 \352\265\260\354\202\254 \354\235\264\353\217\231.md" diff --git "a/suyeun84/202502/04 BOJ G3 \352\265\260\354\202\254 \354\235\264\353\217\231.md" "b/suyeun84/202502/04 BOJ G3 \352\265\260\354\202\254 \354\235\264\353\217\231.md" new file mode 100644 index 00000000..8ca72564 --- /dev/null +++ "b/suyeun84/202502/04 BOJ G3 \352\265\260\354\202\254 \354\235\264\353\217\231.md" @@ -0,0 +1,66 @@ +```java +import java.util.*; +import java.io.*; + +class Solution +{ + static ArrayList> graph; + static int[] answer; + + public static void main(String[] args) throws Exception{ + BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); + StringTokenizer st = new StringTokenizer(br.readLine()); + + int p = Integer.parseInt(st.nextToken()); + int w = Integer.parseInt(st.nextToken()); + st = new StringTokenizer(br.readLine()); + int c = Integer.parseInt(st.nextToken()); + int v = Integer.parseInt(st.nextToken()); + answer = new int[p]; + graph = new ArrayList<>(p+1); + + for (int i = 0; i < p; i++) { + graph.add(new ArrayList()); + } + + for (int i = 0; i < w; i++) { + st = new StringTokenizer(br.readLine()); + int start = Integer.parseInt(st.nextToken()); + int end = Integer.parseInt(st.nextToken()); + int weight = Integer.parseInt(st.nextToken()); + + graph.get(start).add(new Point(end, weight)); + graph.get(end).add(new Point(start, weight)); + } + + bfs(c, v); + System.out.println(answer[v]); + } + + static void bfs(int from, int to) { + Queue q = new LinkedList<>(); + q.offer(new Point(from, 0)); + answer[from] = Integer.MAX_VALUE; + while (!q.isEmpty()) { + Point curr = q.poll(); + if (curr.e == to) continue; + for (Point next : graph.get(curr.e)) { + int nextWieght = Math.min(answer[curr.e], next.w); + if (answer[next.e] >= nextWieght) continue; + answer[next.e] = nextWieght; + q.offer(new Point(next.e, nextWieght)); + } + } + } + + static class Point { + int e; + int w; + public Point(int e, int w) { + this.e = e; + this.w = w; + } + } +} + +```