반응형
https://www.acmicpc.net/problem/1051
1051번: 숫자 정사각형
N×M크기의 직사각형이 있다. 각 칸에는 한 자리 숫자가 적혀 있다. 이 직사각형에서 꼭짓점에 쓰여 있는 수가 모두 같은 가장 큰 정사각형을 찾는 프로그램을 작성하시오. 이때, 정사각형은 행
www.acmicpc.net
출처: https://github.com/PearTree-Lab/ps_study/blob/main/01_Brute_Force/Level3/1051.java
// 숫자 정사각형
// https://www.acmicpc.net/problem/1051
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int N, M;
N = sc.nextInt();
M = sc.nextInt();
int[][] board = new int[N][M];
for (int i = 0; i < N; i++) {
String str = sc.next();
for (int j = 0; j < M; j++) {
board[i][j] = str.charAt(j) - '0';
}
}
// 1. 모든 행(i), 열(j)을 기준으로 변의 길이(k+1)만큼 떨어진 3좌표값을 비교하여, 모두 같은 값이면 최대 넓이 값을 갱신해줌.
int answer = 1;
for (int i = 0; i < N; i++) {
for (int j = 0; j < M; j++) {
for (int k = 1; i + k < N && j + k < M; k++) {
if (board[i][j] == board[i + k][j] && board[i][j] == board[i][j + k] && board[i][j] == board[i + k][j + k]) {
if ( (k + 1) * (k + 1) > answer) {
answer = (k + 1) * (k + 1) ;
}
}
}
}
}
System.out.println(answer);
}
}
반응형
'Algorithm' 카테고리의 다른 글
문자열처리_21 카카오 아이디추천 (0) | 2021.11.09 |
---|---|
완전탐색_2019 삼성 낚시왕 (0) | 2021.11.08 |
DP_N*N 이동경로 최대값을 구하라(음수존재) (0) | 2021.11.07 |
BruteForce_백준 1120 문자열 (0) | 2021.11.07 |
DFS_leetcode numofisland (0) | 2021.09.23 |