삐까냥의 파도타기

Q1915. 가장 큰 정사각형 본문

코딩/백준 알고리즘

Q1915. 가장 큰 정사각형

금손형아 2019. 2. 21. 22:38

칸 네개를 확인하여, 최대 정사각형의 한변 길이를 저장하며 나가는 로직


import java.io.BufferedReader;

import java.io.InputStreamReader;

import java.util.StringTokenizer;


public class Q1915 {


static int[][] dp;

public static void main(String[] args) throws Exception {

BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

StringTokenizer st = new StringTokenizer(br.readLine());

int y = Integer.parseInt(st.nextToken());

int x = Integer.parseInt(st.nextToken());

dp = new int[y+1][x+1];

for (int i = 1; i <= y; i++) {

st = new StringTokenizer(br.readLine());

String tempArray = st.nextToken();

for (int j = 1; j <= x; j++) {

if (tempArray.charAt(j-1) == '1') {

dp[i][j] = 1;

}

}

}


int maxValue = 0;

for (int i = 1; i <= y; i++) {

for (int j = 1; j <= x; j++) {

if (dp[i][j] == 0) {

continue;

}

int min = dp[i-1][j-1];

min = Math.min(min, dp[i-1][j]);

min = Math.min(min, dp[i][j-1]);

min++;

dp[i][j] = min;

if (maxValue < min) {

maxValue = min;

}

}

}

System.out.println(maxValue*maxValue);

}


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

Q2096. 내려가기  (0) 2019.02.23
Q1937. 욕심쟁이 판다  (0) 2019.02.22
Q6359. 만취한 상범  (0) 2019.02.21
Q1309. 동물원  (0) 2019.02.21
Q11054. 가장 긴 바이토닉 부분 수열  (0) 2019.02.19