정사각형 모양의 크기를 모두 구해서
그 중 가장 큰 것을 답으로 리턴하는 문제였다
0의 크기를 가질때 1로 바꿔주는 예외만 추가하면 됐다
https://www.acmicpc.net/problem/1051
#include <bits/stdc++.h>
using namespace std;
int main(){
int n, m, num, r, tok;
int ans=-1;
string s;
cin >> n >> m;
vector<int> v;
int ar[n][m];
for(int i=0; i<n; i++){
cin >> s;
for(int j=0; j<m; j++){
ar[i][j]=(int)s[j]-'0';
}
}
for(int i=0; i<n; i++){
for(int j=0; j<m; j++){
for(int k=m-1; k>j; k--){
if(ar[i][j]==ar[i][k]){
num=ar[i][j];
r=k-j;
if(i+r<n){
if((ar[i+r][j]==num) && (ar[i+r][k]==num)){
ans=(r+1)*(r+1);
v.emplace_back(ans);
}
}
}
}
}
}
tok=*max_element(v.begin(), v.end());
if(v.size()==0){
tok=1;
}
if(tok==0){
tok=1;
}
cout << tok << "\n";
return 0;
}
'개발 노트 > 백준, 프로그래머스 풀이' 카테고리의 다른 글
[백준 2477/c++] 참외밭 (0) | 2022.07.01 |
---|---|
[백준 2839/c++] 설탕 배달 (0) | 2022.06.30 |
[백준 2941/c++] 크로아티아 알파벳 (0) | 2022.06.28 |
[백준 14648/c++] 쿼리 맛보기 (0) | 2022.06.26 |
[백준 2745/c++] 진법 변환 - 문자열 (0) | 2022.06.25 |
댓글