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;}
댓글을 작성하려면 로그인해야 합니다.
rlawjdgh4564 8년 전
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;
}