1051번 테스트 예제도 잘 나오는데 왜 틀렸는지 모르겟네요 ㅠㅠ

#include <stdio.h>
#include <stdlib.h>

int main(){

int N, M, i, j, k, tmp, max;
int **arr;

scanf("%d %d", &N, &M);

arr = (int **) malloc (sizeof(int *) * N);

for(i = 0; i < N; i++){
arr[i] = (int *) malloc (sizeof(int) * M);
scanf("%d", &tmp);
getchar();

for(j = M-1; j >= 0; j--){
arr[i][j] = tmp % 10;
tmp = tmp / 10;
}
}

max = 0;
for(i = 0; i < N-1; i++){
for(j = 0; j < M-1; j++){
tmp = arr[i][j];
for(k = 1; ; k++){
if(i+k > N-1 || j+k > M-1){
break;
}
else{
if(tmp == arr[i+k][j] && tmp == arr[i][j+k] && tmp == arr[i+k][j+k]){
if(max < k)
max = k;
}
}
}
}
}

max = max + 1;
printf("%d\n", max * max);

return 0;
}

댓글을 작성하려면 로그인해야 합니다.