반응형
간단한 구현문제였습니다.
풀이방법
모든 길이에 대해 정사각형을 만들어본 후 꼭지점들의 값이 같으면 가장 긴 길이로 갱신해줍니다.
Code
#include <bits/stdc++.h>
using namespace std;
int n, m;
char square[51][51];
int main(){
cin >> n >> m;
int length = max(n,m);
int ans = 1;
for(int i = 1; i <= n; i++)
for(int j = 1; j <= m; j++)
cin >> square[i][j];
for(int k = 1; k <= length; k++){
for(int i = 1; i <= n ; i++){
for(int j = 1; j <= m; j++){
if(k + i > n || k + j > m) continue;
int a1 = square[i][j]-'0';
int a2 = square[i][j+k]-'0';
int a3 = square[i+k][j]-'0';
int a4 = square[i+k][j+k]-'0';
if(a1==a2&&a2==a3&&a3==a4) ans = max(ans,(k+1)*(k+1));
}
}
}
cout << ans <<'\n';
}
'Algorithm > Implementation' 카테고리의 다른 글
(C++) - 백준(BOJ) 14891번 : 톱니바퀴 답 (0) | 2021.01.10 |
---|---|
(C++) - 백준(BOJ) 13300번 : 방 배정 답 (0) | 2021.01.09 |
(C++) - 백준(BOJ) 2851번 : 슈퍼마리오 답 (0) | 2021.01.09 |
(C++) - 프로그래머스(2018 KAKAO BLIND) : [1차] 셔틀버스 답 (0) | 2021.01.06 |
(C++) - 프로그래머스(찾아라 프로그래밍 마에스트로) : 폰켓몬 답 (0) | 2021.01.01 |