From 9511b3415470f5e69c9521dbb4bee1e548d31dc9 Mon Sep 17 00:00:00 2001 From: JHLEE325 <82587652+JHLEE325@users.noreply.github.com> Date: Sun, 7 Dec 2025 20:19:33 +0900 Subject: [PATCH] =?UTF-8?q?[20251207]=20BOJ=20/=20G5=20/=20=EB=B2=BD?= =?UTF-8?q?=EC=9E=A5=EB=AC=B8=EC=9D=98=20=EC=9D=B4=EB=8F=99=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 --- ...0\354\235\230 \354\235\264\353\217\231.md" | 57 +++++++++++++++++++ 1 file changed, 57 insertions(+) create mode 100644 "JHLEE325/202512/07 BOJ G5 \353\262\275\354\236\245\353\254\270\354\235\230 \354\235\264\353\217\231.md" diff --git "a/JHLEE325/202512/07 BOJ G5 \353\262\275\354\236\245\353\254\270\354\235\230 \354\235\264\353\217\231.md" "b/JHLEE325/202512/07 BOJ G5 \353\262\275\354\236\245\353\254\270\354\235\230 \354\235\264\353\217\231.md" new file mode 100644 index 00000000..91a57be7 --- /dev/null +++ "b/JHLEE325/202512/07 BOJ G5 \353\262\275\354\236\245\353\254\270\354\235\230 \354\235\264\353\217\231.md" @@ -0,0 +1,57 @@ +```java +import java.io.*; +import java.util.*; + +public class Main { + + static final int INF = 1_000_000_000; + + public static void main(String[] args) throws Exception { + BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); + StringTokenizer st; + + int N = Integer.parseInt(br.readLine()); + + st = new StringTokenizer(br.readLine()); + int open1 = Integer.parseInt(st.nextToken()); + int open2 = Integer.parseInt(st.nextToken()); + + int K = Integer.parseInt(br.readLine()); + int[] use = new int[K + 1]; + for (int i = 1; i <= K; i++) { + use[i] = Integer.parseInt(br.readLine()); + } + + int[][][] dp = new int[K + 1][N + 1][N + 1]; + for (int i = 0; i <= K; i++) { + for (int a = 1; a <= N; a++) { + Arrays.fill(dp[i][a], INF); + } + } + + dp[0][open1][open2] = 0; + + for (int i = 0; i < K; i++) { + int x = use[i + 1]; + for (int a = 1; a <= N; a++) { + for (int b = 1; b <= N; b++) { + if (dp[i][a][b] == INF) continue; + + dp[i + 1][x][b] = Math.min(dp[i + 1][x][b], dp[i][a][b] + Math.abs(a - x)); + + dp[i + 1][a][x] = Math.min(dp[i + 1][a][x], dp[i][a][b] + Math.abs(b - x)); + } + } + } + + int answer = INF; + for (int a = 1; a <= N; a++) { + for (int b = 1; b <= N; b++) { + answer = Math.min(answer, dp[K][a][b]); + } + } + + System.out.println(answer); + } +} +```