From 513afd1fad5005896cc4da38ef62d5e90e91eb9e Mon Sep 17 00:00:00 2001 From: Beforejamn1 Date: Mon, 23 Mar 2026 23:18:08 +0900 Subject: [PATCH 1/3] =?UTF-8?q?FEAT:=20BOJ2457=5F=EA=B3=B5=EC=A3=BC?= =?UTF-8?q?=EB=8B=98=EC=9D=98=5F=EC=A0=95=EC=9B=90-PASS?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Jaemin.java" | 70 +++++++++++++++++++ 1 file changed, 70 insertions(+) create mode 100644 "0326/basic_B2457_\352\263\265\354\243\274\353\213\230\354\235\230_\354\240\225\354\233\220/Jaemin.java" diff --git "a/0326/basic_B2457_\352\263\265\354\243\274\353\213\230\354\235\230_\354\240\225\354\233\220/Jaemin.java" "b/0326/basic_B2457_\352\263\265\354\243\274\353\213\230\354\235\230_\354\240\225\354\233\220/Jaemin.java" new file mode 100644 index 0000000..5a72bff --- /dev/null +++ "b/0326/basic_B2457_\352\263\265\354\243\274\353\213\230\354\235\230_\354\240\225\354\233\220/Jaemin.java" @@ -0,0 +1,70 @@ +import java.io.*; +import java.util.*; + +public class Jaemin { + static class Node implements Comparable{ + int start, end; + Node(int start, int end){ + this.start = start; + this.end = end; + } + @Override + public int compareTo(Node o) { + if(this.start != o.start) return Integer.compare(this.start, o.start); + return Integer.compare(o.end, this.end); + } + } + + static final BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); + static final BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out)); + + public static void main(String[] args) throws NumberFormatException, IOException { + int N = Integer.parseInt(br.readLine()); + + Node[] nodes = new Node[N]; + for(int i = 0; i < N; i++) { + StringTokenizer st = new StringTokenizer(br.readLine()); + int sm = Integer.parseInt(st.nextToken()); + int sd = Integer.parseInt(st.nextToken()); + int em = Integer.parseInt(st.nextToken()); + int ed = Integer.parseInt(st.nextToken()); + + int startday = sm*100 + sd; + int endday = em*100 + ed; + nodes[i] = new Node(startday, endday); + } + + Arrays.sort(nodes); + + int cnt = 0; + int tail = 301; + int temptail = tail; + int idx = 0; + while(tail < 1201) { + boolean found = false; + while(idx < N && nodes[idx].start <= tail) { + if(nodes[idx].end > temptail) { + temptail = nodes[idx].end; + found = true; + } + idx++; + } + + if(found) { + tail = temptail; + cnt++; + } else { + break; + } + } + + if(tail <= 1130) { + cnt = 0; + } + + bw.write(cnt + "\n"); + bw.flush(); + bw.close(); + br.close(); + } +} From aec838e28725e7df98b5d751b00334b7f3113fb7 Mon Sep 17 00:00:00 2001 From: Beforejamn1 Date: Mon, 23 Mar 2026 23:19:53 +0900 Subject: [PATCH 2/3] =?UTF-8?q?FEAT:=20BOJ16234=5F=EC=9D=B8=EA=B5=AC=5F?= =?UTF-8?q?=EC=9D=B4=EB=8F=99-PASS?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Jaemin.java" | 101 ++++++++++++++++++ 1 file changed, 101 insertions(+) create mode 100644 "0326/mid_B16234_\354\235\270\352\265\254_\354\235\264\353\217\231/Jaemin.java" diff --git "a/0326/mid_B16234_\354\235\270\352\265\254_\354\235\264\353\217\231/Jaemin.java" "b/0326/mid_B16234_\354\235\270\352\265\254_\354\235\264\353\217\231/Jaemin.java" new file mode 100644 index 0000000..5747ff0 --- /dev/null +++ "b/0326/mid_B16234_\354\235\270\352\265\254_\354\235\264\353\217\231/Jaemin.java" @@ -0,0 +1,101 @@ +import java.io.*; +import java.util.*; + +class Node{ + int r, c; + Node(int r, int c){ + this.r = r; + this.c = c; + } +} + +public class Jaemin { + static final BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); + static final BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out)); + static final StringBuilder sb = new StringBuilder(); + static final int[] dr = {-1, 1, 0, 0}; + static final int[] dc = {0, 0, -1, 1}; + + static int N, L, R, map[][], answer; + static boolean[][] visited; + + public static void main(String[] args) throws IOException { + StringTokenizer st = new StringTokenizer(br.readLine()); + N = Integer.parseInt(st.nextToken()); + L = Integer.parseInt(st.nextToken()); + R = Integer.parseInt(st.nextToken()); + + map = new int[N][N]; + for(int i = 0; i < N; i++) { + st = new StringTokenizer(br.readLine()); + for(int j = 0; j < N; j++) { + map[i][j] = Integer.parseInt(st.nextToken()); + } + } + int days = 0; + + boolean isMoved; + do { + isMoved = false; + visited = new boolean[N][N]; + for (int i = 0; i < N; i++) { + for (int j = 0; j < N; j++) { + if(visited[i][j])continue; + if(tryMove(i, j)) isMoved=true; + } + } + if(isMoved)days++; + }while(isMoved); + + sb.append(days).append("\n"); + bw.write(sb.toString()); + bw.flush(); + bw.close(); + br.close(); + + } + + static boolean tryMove(int r, int c) { + int sum = 0; + + Deque dq = new ArrayDeque<>(); + Deque union = new ArrayDeque<>(); + + dq.add(new Node(r, c)); + visited[r][c]= true; + + while(!dq.isEmpty()) { + Node node = dq.pollFirst(); + int cr = node.r; + int cc = node.c; + + sum+= map[cr][cc]; + union.addFirst(new Node(cr , cc)); + + for(int d = 0; d < 4; d++) { + int nr = cr + dr[d]; + int nc = cc + dc[d]; + if(nr >= 0 && nr < N && nc >= 0 && nc < N && !visited[nr][nc]) { + int diff = Math.abs(map[cr][cc] - map[nr][nc]); + + if(diff >= L && diff <= R) { + dq.add(new Node(nr, nc)); + visited[nr][nc] = true; + } + } + } + } + + if(union.size() > 1) { + int size = union.size(); + int div = sum / size; + while(!union.isEmpty()) { + Node node = union.pollFirst(); + map[node.r][node.c] = div; + } + return true; + } + return false; + } + +} From 449ca73c0b44f59ed6cba045f4d4e9bc32940829 Mon Sep 17 00:00:00 2001 From: Beforejamn1 Date: Mon, 23 Mar 2026 23:21:17 +0900 Subject: [PATCH 3/3] =?UTF-8?q?FEAT:=20P#=5F=EC=9E=90=EB=AC=BC=EC=87=A0?= =?UTF-8?q?=EC=99=80=5F=EC=97=B4=EC=87=A0-PASS?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Jaemin.java" | 76 +++++++++++++++++++ 1 file changed, 76 insertions(+) create mode 100644 "0326/expert_P3_\354\236\220\353\254\274\354\207\240\354\231\200_\354\227\264\354\207\240/Jaemin.java" diff --git "a/0326/expert_P3_\354\236\220\353\254\274\354\207\240\354\231\200_\354\227\264\354\207\240/Jaemin.java" "b/0326/expert_P3_\354\236\220\353\254\274\354\207\240\354\231\200_\354\227\264\354\207\240/Jaemin.java" new file mode 100644 index 0000000..43ac132 --- /dev/null +++ "b/0326/expert_P3_\354\236\220\353\254\274\354\207\240\354\231\200_\354\227\264\354\207\240/Jaemin.java" @@ -0,0 +1,76 @@ +class Jaemin { + static final int[] dr = {-1, 1, 0, 0}; + static final int[] dc = {0, 0, -1, 1}; + + static int N, M; + + public boolean solution(int[][] key , int[][] lock){ + N = key.length; + M = lock.length; + int[][] turnKey = key; + for(int a = 0; a < 4; a++){ + + for(int i = 1 -N; i < M ; i++){ + for(int j = 1 -N; j < M; j++){ + int[][] checkLock = new int[M][M]; + for(int l = 0; l < M; l++){ + System.arraycopy(lock[l], 0, checkLock[l], 0, M); + } + + if(check(turnKey, checkLock, i , j)) return true; + } + } + turnKey = turn(turnKey); + } + + + return false; + } + + static boolean check(int[][] key, int[][] lock, int sr, int sc){ + for (int i = 0; i < N; i++) { + for(int j = 0; j < N; j++){ + int lr = sr + i; + int lc = sc + j; + if(lr >= 0 && lr < M && lc >= 0 && lc < M ){ + lock[lr][lc] += key[i][j]; + } + } + } + + for (int i = 0; i < M; i++) { + for (int j = 0; j < M; j++) { + if(lock[i][j] != 1) return false; + } + } + + + return true; + } + + + static int[][] move(int d, int[][] key){ + int[][] temp = new int[N][N]; + for(int i = 0; i < N; i++){ + for(int j = 0; j < N; j++){ + int nr = i + dr[d]; + int nc = j + dc[d]; + if(nr >= 0 && nr < N && nc >= 0 && nc < N){ + temp[i][j] = key[nr][nc]; + } + } + + } + return temp; + } + + static int[][] turn (int[][] key){ + int[][] temp = new int[N][N]; + for(int i = 0; i < N; i++){ + for(int j = 0; j < N; j++){ + temp[j][N -1 -i] = key[i][j]; + } + } + return temp; + } +} \ No newline at end of file