From 1ac3895fd41e11849b357d8c232b1f58164a56a4 Mon Sep 17 00:00:00 2001 From: programofktw Date: Sat, 28 Mar 2026 14:58:21 +0900 Subject: [PATCH 1/2] =?UTF-8?q?[bkd]=20bfs=202583=20=EC=98=81=EC=97=AD=20?= =?UTF-8?q?=EA=B5=AC=ED=95=98=EA=B8=B0=20solved?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/bkd/bfs/B2583.java | 117 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 117 insertions(+) create mode 100644 src/bkd/bfs/B2583.java diff --git a/src/bkd/bfs/B2583.java b/src/bkd/bfs/B2583.java new file mode 100644 index 0000000..6ebf58e --- /dev/null +++ b/src/bkd/bfs/B2583.java @@ -0,0 +1,117 @@ +package bkd.bfs; + +import java.io.BufferedReader; +import java.io.IOException; +import java.io.InputStreamReader; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.LinkedList; +import java.util.Queue; + +public class B2583 { + + private static BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); + + private static StringBuilder sb = new StringBuilder(); + + private static boolean[][] visited; + + private static int[] dirX = {0,-1,0,1}; + + private static int[] dirY = {-1,0,1,0}; + + public static void main(String[] args) throws IOException { + + int[] input = Arrays.stream(br.readLine().split(" ")).mapToInt(Integer::parseInt).toArray(); + + int m = input[0]; + + int n = input[1]; + + int num = input[2]; + + visited = new boolean[m][n]; + + int areaNum = 0; + + ArrayList area = new ArrayList<>(); + + for(int i = 0;i bfs = new LinkedList<>(); + + bfs.add(new Node(i,j)); + visited[i][j] = true; + areaNum++; + + int tempNum = 1; + + while(!bfs.isEmpty()){ + Node now = bfs.poll(); + + + for(int dir=0;dir<4;dir++){ + + int nextX = now.x + dirX[dir]; + + int nextY = now.y + dirY[dir]; + + if(nextX < 0||nextX>=n||nextY<0||nextY>=m){ + continue; + } + + if(!visited[nextY][nextX]){ + bfs.add(new Node(nextY,nextX)); + visited[nextY][nextX] = true; + tempNum++; + } + } + } + area.add(tempNum); + + } + } + } + + Object[] array = area.toArray(); + + Arrays.sort(array); + + sb.append(areaNum).append("\n"); + + for(int i = 0 ; i < array.length;i++){ + sb.append(array[i]).append(" "); + } + + System.out.print(sb); + } + + static class Node{ + int y; + int x; + + Node(int y, int x){ + this.y = y; + this.x = x; + } + } +} From cce8633a83e8cc3a410336ec50271786235a54d3 Mon Sep 17 00:00:00 2001 From: programofktw Date: Sat, 28 Mar 2026 15:00:57 +0900 Subject: [PATCH 2/2] =?UTF-8?q?[bkd]=20bfs=202583=20=EC=98=81=EC=97=AD=20?= =?UTF-8?q?=EA=B5=AC=ED=95=98=EA=B8=B0=20=EB=B6=88=ED=95=84=EC=9A=94?= =?UTF-8?q?=ED=95=9C=20Object[]=20=EB=B3=80=ED=99=98=20=EC=82=AD=EC=A0=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/bkd/bfs/B2583.java | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/src/bkd/bfs/B2583.java b/src/bkd/bfs/B2583.java index 6ebf58e..db7f3f7 100644 --- a/src/bkd/bfs/B2583.java +++ b/src/bkd/bfs/B2583.java @@ -5,6 +5,7 @@ import java.io.InputStreamReader; import java.util.ArrayList; import java.util.Arrays; +import java.util.Collections; import java.util.LinkedList; import java.util.Queue; @@ -92,14 +93,12 @@ public static void main(String[] args) throws IOException { } } - Object[] array = area.toArray(); - - Arrays.sort(array); + Collections.sort(area); sb.append(areaNum).append("\n"); - for(int i = 0 ; i < array.length;i++){ - sb.append(array[i]).append(" "); + for(int i = 0 ; i < area.size();i++){ + sb.append(area.get(i)).append(" "); } System.out.print(sb);