From 7d30b69036eadfb392178be586fe7dea30ddcc0f Mon Sep 17 00:00:00 2001 From: JHLEE325 <82587652+JHLEE325@users.noreply.github.com> Date: Thu, 24 Jul 2025 17:33:26 +0900 Subject: [PATCH] =?UTF-8?q?[20250724]=20BOJ=20/=20G4=20/=20=EC=88=A8?= =?UTF-8?q?=EB=B0=94=EA=BC=AD=EC=A7=88=204=20/=20=EC=9D=B4=EC=A4=80?= =?UTF-8?q?=ED=9D=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...\353\260\224\352\274\255\354\247\210 4.md" | 64 +++++++++++++++++++ 1 file changed, 64 insertions(+) create mode 100644 "JHLEE325/202507/24 BOJ G4 \354\210\250\353\260\224\352\274\255\354\247\210 4.md" diff --git "a/JHLEE325/202507/24 BOJ G4 \354\210\250\353\260\224\352\274\255\354\247\210 4.md" "b/JHLEE325/202507/24 BOJ G4 \354\210\250\353\260\224\352\274\255\354\247\210 4.md" new file mode 100644 index 00000000..1cca7129 --- /dev/null +++ "b/JHLEE325/202507/24 BOJ G4 \354\210\250\353\260\224\352\274\255\354\247\210 4.md" @@ -0,0 +1,64 @@ +```java +import java.io.*; +import java.util.*; + +public class Main { + static int MAX = 100001; + + public static void main(String[] args) throws Exception { + BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); + StringTokenizer st = new StringTokenizer(br.readLine()); + + int n = Integer.parseInt(st.nextToken()); + int k = Integer.parseInt(st.nextToken()); + + int[] dist = new int[MAX]; + int[] prev = new int[MAX]; + + Arrays.fill(dist, -1); + + Queue q = new LinkedList<>(); + q.offer(n); + dist[n] = 0; + + while (!q.isEmpty()) { + int now = q.poll(); + + for (int i = 0; i < 3; i++) { + int next = 0; + switch (i) { + case 0: + next = now - 1; + break; + case 1: + next = now + 1; + break; + case 2: + next = now * 2; + break; + } + + if (next >= 0 && next < MAX && dist[next] == -1) { + dist[next] = dist[now] + 1; + prev[next] = now; + q.offer(next); + } + } + + } + + System.out.println(dist[k]); + + Stack path = new Stack<>(); + for (int i = k; i != n; i = prev[i]) { + path.push(i); + } + path.push(n); + + while (!path.isEmpty()) { + System.out.print(path.pop() + " "); + } + } +} + +```