From d4a508634394e3b01f2b31b268c50e67fd706160 Mon Sep 17 00:00:00 2001 From: HeeEul Shin <83682424+ShinHeeEul@users.noreply.github.com> Date: Thu, 13 Mar 2025 11:17:05 +0900 Subject: [PATCH] =?UTF-8?q?[20250313]=20BOJ=20/=20G3=20/=20=EC=86=8C?= =?UTF-8?q?=EC=9A=A9=EB=8F=8C=EC=9D=B4=20=EC=9D=B4=EC=81=98=EA=B2=8C=20?= =?UTF-8?q?=EC=B6=9C=EB=A0=A5=ED=95=98=EA=B8=B0=20/=20=EC=8B=A0=ED=9D=AC?= =?UTF-8?q?=EC=9D=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...34\353\240\245\355\225\230\352\270\260.md" | 80 +++++++++++++++++++ 1 file changed, 80 insertions(+) create mode 100644 "ShinHeeEul/202503/13 BOJ G3 \354\206\214\354\232\251\353\217\214\354\235\264 \354\235\264\354\201\230\352\262\214 \354\266\234\353\240\245\355\225\230\352\270\260.md" diff --git "a/ShinHeeEul/202503/13 BOJ G3 \354\206\214\354\232\251\353\217\214\354\235\264 \354\235\264\354\201\230\352\262\214 \354\266\234\353\240\245\355\225\230\352\270\260.md" "b/ShinHeeEul/202503/13 BOJ G3 \354\206\214\354\232\251\353\217\214\354\235\264 \354\235\264\354\201\230\352\262\214 \354\266\234\353\240\245\355\225\230\352\270\260.md" new file mode 100644 index 00000000..0d1df9b0 --- /dev/null +++ "b/ShinHeeEul/202503/13 BOJ G3 \354\206\214\354\232\251\353\217\214\354\235\264 \354\235\264\354\201\230\352\262\214 \354\266\234\353\240\245\355\225\230\352\270\260.md" @@ -0,0 +1,80 @@ +import java.io.*; +import java.util.*; + +public class Main { + + + static int[][] map; + public static void main(String[] args) throws Exception { + BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); + + + int dir = 0; + int[] di = {0, -1, 0, 1}; + int[] dj = {-1, 0, 1, 0}; + + + int i = 10000; + int j = 10000; + + + StringTokenizer st = new StringTokenizer(br.readLine()); + + int r1 = Integer.parseInt(st.nextToken()) + 5000; + int c1 = Integer.parseInt(st.nextToken()) + 5000; + int r2 = Integer.parseInt(st.nextToken()) + 5000; + int c2 = Integer.parseInt(st.nextToken()) + 5000; + + map = new int[r2 - r1 + 1][c2 - c1 + 1]; + int cnt = 0; + int limit = 10001; + boolean bool = true; + + int max = 0; + for(int a = 10001 * 10001 ; a > 0; a--) { + + if(i >= r1 && i <= r2 && j >= c1 && j <= c2) { + max = Math.max(a, max); + map[i - r1][j - c1] = a; + } + cnt++; + int nxti = i + di[dir]; + int nxtj = j + dj[dir]; + + if(cnt == limit) { + cnt = 0; + if(bool) { + bool = false; + limit--; + } else { + bool = true; + } + dir = (dir + 1) % 4; + i += di[dir]; + j += dj[dir]; + continue; + } + + i = nxti; + j = nxtj; + } + + StringBuilder sb = new StringBuilder(); + + int ans = 0; + while(max > 0) { + ans++; + max /= 10; + } + + for(int a = 0; a < map.length; a++) { + for(int b = 0; b < map[0].length; b++) { + sb.append(String.format("%" + ans + "d", map[a][b])).append(" "); + } + sb.append("\n"); + } + + System.out.println(sb); + } + +}