From 95681e0817c6d8bb801dea5ea5991cc1308c1402 Mon Sep 17 00:00:00 2001 From: LiiNi-coder <97495437+LiiNi-coder@users.noreply.github.com> Date: Mon, 25 Aug 2025 23:58:45 +0900 Subject: [PATCH] =?UTF-8?q?[20250825]=20BOJ=20/=20G5=20/=20=EB=B1=80?= =?UTF-8?q?=EA=B3=BC=20=EC=82=AC=EB=8B=A4=EB=A6=AC=20=EA=B2=8C=EC=9E=84=20?= =?UTF-8?q?/=20=EC=9D=B4=EC=9D=B8=ED=9D=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...4\353\246\254 \352\262\214\354\236\204.md" | 49 +++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 "LiiNi-coder/202508/25 BOJ \353\261\200\352\263\274 \354\202\254\353\213\244\353\246\254 \352\262\214\354\236\204.md" diff --git "a/LiiNi-coder/202508/25 BOJ \353\261\200\352\263\274 \354\202\254\353\213\244\353\246\254 \352\262\214\354\236\204.md" "b/LiiNi-coder/202508/25 BOJ \353\261\200\352\263\274 \354\202\254\353\213\244\353\246\254 \352\262\214\354\236\204.md" new file mode 100644 index 00000000..c9b45ec4 --- /dev/null +++ "b/LiiNi-coder/202508/25 BOJ \353\261\200\352\263\274 \354\202\254\353\213\244\353\246\254 \352\262\214\354\236\204.md" @@ -0,0 +1,49 @@ +```java +import java.io.*; +import java.util.*; + +public class Main { + private static BufferedReader br; + public static void main(String[] args) throws IOException { + br = new BufferedReader(new InputStreamReader(System.in)); + String[] temp = br.readLine().split(" "); + int N = Integer.parseInt(temp[0]); + int M = Integer.parseInt(temp[1]); + + Map move = new HashMap<>(); + for (int i = 0; i < N; i++) { + temp = br.readLine().split(" "); + move.put(Integer.parseInt(temp[0]), Integer.parseInt(temp[1])); + } + for (int i = 0; i < M; i++) { + temp = br.readLine().split(" "); + move.put(Integer.parseInt(temp[0]), Integer.parseInt(temp[1])); + } + boolean[] visited = new boolean[101]; + Queue q = new ArrayDeque<>(); + q.add(new int[]{1, 0}); //QElement: {현재칸, 주사위횟수} + visited[1] = true; + while (!q.isEmpty()) { + // + int[] cur = q.poll(); + int now = cur[0]; + int count = cur[1]; + if (now == 100) { + System.out.println(count); + return; + } + + for (int d = 1; d <= 6; d++) { + int np = now + d; + if (np > 100) continue; + if (move.containsKey(np)) + np = move.get(np); + if (!visited[np]) { + visited[np] = true; + q.add(new int[]{np, count + 1}); + } + } + } + } +} +```