공부 흔적남기기

[JAVA] 백준 숫자 정사각형 1051 본문

코테/백준

[JAVA] 백준 숫자 정사각형 1051

65살까지 코딩 2025. 3. 31. 20:11
728x90
반응형

이 문제를 처음 봤을떄 각 지점에서 하나씩 좌우로 탐색하면서 찾아야하나? 라는 고민이 들었는데 그럼 먼가 지저분해질 것 같은 기분이 들었다. 그래서 더 좋은 방법을 고민해보았는데 n,m 이 50으로 상대적으로 숫자가 굉장히 낮기때문에

모든 정사각형을 탐색하는 것이 더 좋다는 생각이 들었다. 

 

import java.util.*;
import java.io.*;

class Main {
    
    static class XY{
        int x;
        int y;
        
        XY(int x, int y){
            this.x =x;
            this.y = y;
        }
    }
    
    
    
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
        
        String[] input = br.readLine().split(" ");
        int n = Integer.parseInt(input[0]);
        int m = Integer.parseInt(input[1]);
        int[][] board = new int[n][m];
        for(int i =0; i<n; i++){
            board[i] = Arrays.stream(br.readLine().split("")).mapToInt(Integer::parseInt).toArray();
        }
        int answer = 1;
        
        for(int r = 1; r<n; r++){
            for(int y = 0; y+r<n; y++){
                for(int x =0; x+r<m; x++){
                    int v =board[y][x];
                    if(v == board[y][x+r] 
                    && v== board[y+r][x] 
                    && v == board[y+r][x+r]){
                        answer = (r+1)*(r+1);
                    }
                }
            }
        }
        

        bw.write(answer + "");
        bw.flush();
        bw.close();
        br.close();
        
        
        
        
    }
}
728x90
반응형

'코테 > 백준' 카테고리의 다른 글

[JAVA] 백준 가장 큰 정사각형 1915  (0) 2025.03.30
[JAVA] 백준 택배 1719  (0) 2025.03.23
[JAVA] 백준 1509 팰린드롬 분할  (0) 2025.03.14
[JAVA] 파티 1238  (0) 2025.03.06
[JAVA] 백준 특정한 최단 경로 1504  (0) 2024.12.01