-
[BOJ] 5212 지구 온난화ALGORITHM/BOJ 2023. 6. 18. 22:18
https://www.acmicpc.net/problem/5212
2023-06-18
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859import java.util.Scanner;public class Main5212 {public static int[] dx = {-1, 0, 1, 0};public static int[] dy = {0, -1, 0, 1};public static void main(String[] args) {Scanner sc = new Scanner(System.in);int n = sc.nextInt();int m = sc.nextInt();char[][] arr = new char[n][m];for(int i = 0; i < n; i++) {String tmp = sc.next();for(int j = 0; j < m; j++) {arr[i][j] = tmp.charAt(j);}}int sx = 101;int sy = 101;int ex = -1;int ey = -1;for(int i = 0; i < n; i++) {for(int j = 0; j < m; j++) {int count = 0;if(arr[i][j] == 'X') {for(int k = 0; k < 4; k++) {int nx = i + dx[k];int ny = j + dy[k];if(nx < 0 || ny < 0 || nx >= n || ny >= m || arr[nx][ny] == '.') count++;}if(count >= 3) arr[i][j] = '-';else {sx = Math.min(sx, i);sy = Math.min(sy, j);ex = Math.max(ex, i);ey = Math.max(ey, j);}}}}StringBuilder sb = new StringBuilder();for(int i = sx; i <= ex; i++) {for(int j = sy; j <= ey; j++) {if(arr[i][j] == '-') sb.append(".");else sb.append(arr[i][j]);}sb.append("\n");}System.out.println(sb.toString());}}cs #문제풀이
땅 인접 4방향 중 3면 이상이 바다인 경우 바다로 만듦
아닌 경우 직사각형 모양 만들기 위해서 좌표 체크
'ALGORITHM > BOJ' 카테고리의 다른 글
[BOJ] 16427 고냥이 (0) 2023.06.26 [BOJ] 1620 나는야 포켓몬 마스터 이다솜 (0) 2023.06.21 [BOJ] 18110 solved.ac (0) 2023.06.13 [BOJ] 14940 쉬운 최단거리 (0) 2023.06.06 [BOJ] 16948 데스 나이트 (1) 2023.06.04