From c868c9256dbf2f95945b06bb8ae9b3f80ba4d71a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EC=A1=B0=EB=8B=A4=EC=97=B0?= Date: Tue, 26 Sep 2023 20:53:49 +0900 Subject: [PATCH] Week26 --- .../Week26_0926/BOJ_20058.java" | 158 ++++++++++++++++++ .../Week26_0926/BOJ_27497.java" | 53 ++++++ 2 files changed, 211 insertions(+) create mode 100644 "\354\241\260\353\213\244\354\227\260/Week26_0926/BOJ_20058.java" create mode 100644 "\354\241\260\353\213\244\354\227\260/Week26_0926/BOJ_27497.java" diff --git "a/\354\241\260\353\213\244\354\227\260/Week26_0926/BOJ_20058.java" "b/\354\241\260\353\213\244\354\227\260/Week26_0926/BOJ_20058.java" new file mode 100644 index 0000000..3147660 --- /dev/null +++ "b/\354\241\260\353\213\244\354\227\260/Week26_0926/BOJ_20058.java" @@ -0,0 +1,158 @@ +import java.io.BufferedReader; +import java.io.IOException; +import java.io.InputStreamReader; +import java.util.LinkedList; +import java.util.Queue; +import java.util.StringTokenizer; + +public class BOJ_20058 { + //¸¶¹ý»ç »ó¾î¿Í ÆÄÀ̾Åè + static int N, Q; + static int[][] map, tmp; + static int answer1, answer2; + static int[] dr = {-1, 1, 0, 0}; + static int[] dc = {0, 0, -1, 1}; + static boolean[][] v; + static boolean[][] melt; + + public static void main(String[] args) throws IOException { + BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); + StringTokenizer st = new StringTokenizer(br.readLine()); + + N = Integer.parseInt(st.nextToken()); + Q = Integer.parseInt(st.nextToken()); + + int n = (int) Math.pow(2, N); + map = new int[n][n]; + tmp = new int[n][n]; + + for(int r=0; r q = new LinkedList(); + q.add(new int[] {r,c}); + v[r][c] = true; + + while(!q.isEmpty()) { + int[] now = q.poll(); + + int cr = now[0]; int cc = now[1]; + + for(int d=0; d<4; d++) { + int nr = cr+dr[d]; + int nc = cc+dc[d]; + + if(nr<0 || nr>=map.length || nc<0 || nc>=map.length) continue; + if(v[nr][nc]) continue; + + if(map[nr][nc]!=0) { + q.add(new int[] {nr,nc}); + v[nr][nc] = true; + cnt++; + } + } + } + + return cnt; + } + + private static int ice(int r, int c) { + int cnt = 0; + + for(int d=0; d<4; d++) { + int nr = r+dr[d]; + int nc = c+dc[d]; + + //¹üÀ§ + if(nr<0 || nr>=map.length || nc<0 || nc>=map.length) continue; + + if(map[nr][nc]!=0) cnt++; + } + + + return cnt; + } + + private static void rotaion(int r, int c, int l) { + int x=r; int y=c+l-1; + for(int i=r; ir+l-1) x=r; + if(y deque = new ArrayDeque<>(); + Stack stack = new Stack<>(); + StringBuilder sb = new StringBuilder(); + + for(int i=0; i