From 04a1a38115df5824910ad7092a9f8501d52a50c9 Mon Sep 17 00:00:00 2001 From: jiminnimij <124450012+jiminnimij@users.noreply.github.com> Date: Wed, 31 Dec 2025 08:46:16 +0900 Subject: [PATCH 1/3] =?UTF-8?q?[1231]=2013913=EB=B2=88=20-=20=EC=88=A8?= =?UTF-8?q?=EB=B0=94=EA=BC=AD=EC=A7=88=204?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/Problem13913.java | 76 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 76 insertions(+) create mode 100644 src/Problem13913.java diff --git a/src/Problem13913.java b/src/Problem13913.java new file mode 100644 index 0000000..0e7f2b2 --- /dev/null +++ b/src/Problem13913.java @@ -0,0 +1,76 @@ +import java.io.InputStreamReader; +import java.io.OutputStreamWriter; +import java.io.BufferedReader; +import java.io.BufferedWriter; +import java.io.IOException; +import java.util.Arrays; +import java.util.StringTokenizer; +import java.util.Queue; +import java.util.LinkedList; +import java.util.Stack; +import java.lang.StringBuilder; + +public class Problem13913 { + static final int MAX = 100000; + static int[] before = new int[MAX + 1]; + static int[] count = new int[MAX + 1]; + static BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); + static BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out)); + + + public static void main(String[] args) throws IOException{ + StringTokenizer st = new StringTokenizer(br.readLine()); + + int n = Integer.parseInt(st.nextToken()); + int k = Integer.parseInt(st.nextToken()); + + Arrays.fill(count, MAX+1); + Arrays.fill(before, 0); + + Queue queue = new LinkedList<>(); + queue.add(n); + + before[n] = -1; + count[n] = 0; + + while(!queue.isEmpty()){ + int cur = queue.poll(); + + if (cur == k) { + writePath(n, k); + return; + } + + int[] nextPositions = {cur - 1, cur + 1, cur * 2}; + + for (int next : nextPositions) { + if (next >= 0 && next <= MAX && count[next] > count[cur] + 1) { + before[next] = cur; + count[next] = count[cur] + 1; + queue.add(next); + } + } + } + + } + + public static void writePath(int n, int k) throws IOException { + Stack stack = new Stack<>(); + int index = k; + while (index != n) { + stack.push(index); + index = before[index]; + } + + stack.push(n); + + StringBuilder sb = new StringBuilder(); + sb.append(count[k]).append("\n"); + while (!stack.isEmpty()) { + sb.append(stack.pop()).append(" "); + } + bw.write(sb.toString()); + bw.flush(); + bw.close(); + } +} \ No newline at end of file From 01e54578de256648e3b20cd4551154ca6468087f Mon Sep 17 00:00:00 2001 From: jiminnimij <124450012+jiminnimij@users.noreply.github.com> Date: Sat, 3 Jan 2026 19:57:32 +0900 Subject: [PATCH 2/3] =?UTF-8?q?[0103]=2014442=EB=B2=88=20-=20=EB=B2=BD=20?= =?UTF-8?q?=EB=B6=80=EC=88=98=EA=B3=A0=20=EC=9D=B4=EB=8F=99=ED=95=98?= =?UTF-8?q?=EA=B8=B0=202?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/Problem14442.java | 74 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 74 insertions(+) create mode 100644 src/Problem14442.java diff --git a/src/Problem14442.java b/src/Problem14442.java new file mode 100644 index 0000000..b99b01c --- /dev/null +++ b/src/Problem14442.java @@ -0,0 +1,74 @@ +import java.io.InputStreamReader; +import java.io.OutputStreamWriter; +import java.io.BufferedReader; +import java.io.BufferedWriter; +import java.io.IOException; +import java.util.StringTokenizer; +import java.util.Queue; +import java.util.Arrays; +import java.util.LinkedList; + +public class Problem14442 { + static int[] DN = {1, -1, 0, 0}; + static int[] DM = {0, 0, 1, -1}; + + public static void main(String[] args) throws IOException { + BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); + BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out)); + + StringTokenizer st = new StringTokenizer(br.readLine()); + + int n = Integer.parseInt(st.nextToken()); + int m = Integer.parseInt(st.nextToken()); + int k = Integer.parseInt(st.nextToken()); + + int[][] map = new int[n][m]; + boolean[][][] visited = new boolean[n][m][k+1]; + Queue q = new LinkedList<>(); + + for (int i = 0 ; i < n ; i++) { + String line = br.readLine(); + for (int j = 0 ; j < m ; j++) { + map[i][j] = Integer.parseInt(line.charAt(j) + ""); + Arrays.fill(visited[i][j], false); + } + } + + visited[0][0][0] = true; + q.add(new int[]{0, 0, 0, 1}); + + while (!q.isEmpty()) { + int[] cur = q.poll(); + int x = cur[0]; + int y = cur[1]; + int brokenWall = cur[2]; + int dist = cur[3]; + + if (x == n - 1 && y == m - 1) { + bw.write(String.valueOf(dist)); + bw.flush(); + bw.close(); + return; + } + + for (int i = 0; i < 4; i++) { + int nextX = x + DN[i]; + int nextY = y + DM[i]; + + if (nextX >= 0 && nextX < n && nextY >= 0 && nextY < m) { + if (map[nextX][nextY] == 0 && !visited[nextX][nextY][brokenWall]) { + visited[nextX][nextY][brokenWall] = true; + q.add(new int[]{nextX, nextY, brokenWall, dist + 1}); + } else if (map[nextX][nextY] == 1 && brokenWall < k && !visited[nextX][nextY][brokenWall + 1]) { + visited[nextX][nextY][brokenWall + 1] = true; + q.add(new int[]{nextX, nextY, brokenWall + 1, dist + 1}); + } + } + } + } + + bw.write("-1"); + bw.flush(); + bw.close(); + } +} \ No newline at end of file From 85dbe316f0fcafcd6ee9dda9549b112be1f788f2 Mon Sep 17 00:00:00 2001 From: jiminnimij <124450012+jiminnimij@users.noreply.github.com> Date: Sat, 3 Jan 2026 19:59:37 +0900 Subject: [PATCH 3/3] =?UTF-8?q?Revert=20"[1231]=2013913=EB=B2=88=20-=20?= =?UTF-8?q?=EC=88=A8=EB=B0=94=EA=BC=AD=EC=A7=88=204"?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This reverts commit 04a1a38115df5824910ad7092a9f8501d52a50c9. --- src/Problem13913.java | 76 ------------------------------------------- 1 file changed, 76 deletions(-) delete mode 100644 src/Problem13913.java diff --git a/src/Problem13913.java b/src/Problem13913.java deleted file mode 100644 index 0e7f2b2..0000000 --- a/src/Problem13913.java +++ /dev/null @@ -1,76 +0,0 @@ -import java.io.InputStreamReader; -import java.io.OutputStreamWriter; -import java.io.BufferedReader; -import java.io.BufferedWriter; -import java.io.IOException; -import java.util.Arrays; -import java.util.StringTokenizer; -import java.util.Queue; -import java.util.LinkedList; -import java.util.Stack; -import java.lang.StringBuilder; - -public class Problem13913 { - static final int MAX = 100000; - static int[] before = new int[MAX + 1]; - static int[] count = new int[MAX + 1]; - static BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); - static BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out)); - - - public static void main(String[] args) throws IOException{ - StringTokenizer st = new StringTokenizer(br.readLine()); - - int n = Integer.parseInt(st.nextToken()); - int k = Integer.parseInt(st.nextToken()); - - Arrays.fill(count, MAX+1); - Arrays.fill(before, 0); - - Queue queue = new LinkedList<>(); - queue.add(n); - - before[n] = -1; - count[n] = 0; - - while(!queue.isEmpty()){ - int cur = queue.poll(); - - if (cur == k) { - writePath(n, k); - return; - } - - int[] nextPositions = {cur - 1, cur + 1, cur * 2}; - - for (int next : nextPositions) { - if (next >= 0 && next <= MAX && count[next] > count[cur] + 1) { - before[next] = cur; - count[next] = count[cur] + 1; - queue.add(next); - } - } - } - - } - - public static void writePath(int n, int k) throws IOException { - Stack stack = new Stack<>(); - int index = k; - while (index != n) { - stack.push(index); - index = before[index]; - } - - stack.push(n); - - StringBuilder sb = new StringBuilder(); - sb.append(count[k]).append("\n"); - while (!stack.isEmpty()) { - sb.append(stack.pop()).append(" "); - } - bw.write(sb.toString()); - bw.flush(); - bw.close(); - } -} \ No newline at end of file