https://www.acmicpc.net/problem/1051

 

1051번: 숫자 정사각형

N×M크기의 직사각형이 있다. 각 칸에는 한 자리 숫자가 적혀 있다. 이 직사각형에서 꼭짓점에 쓰여 있는 수가 모두 같은 가장 큰 정사각형을 찾는 프로그램을 작성하시오. 이때, 정사각형은 행

www.acmicpc.net

처음에 보고 쉬운 문제인 줄 알고, 30분 안에 풀고 다른 공부를 하려 했습니다.

ㅎ 거의 2시간이 걸렸네요

#include <stdio.h>

int main(void) {
    int a = 0, b = 0;
    int small, big;
    char arr[100][100] = {};
    scanf("%d%d", &a, &b);

    for(int i = 0; i < a; i++) {
            scanf("%s", arr[i]);
    }
    if (a <= b) {
        small = a;
        big = b;
        a--;
        b--;
        for(int k = 0; k <= a; a--) {
         for(int i = 0; i < small - a; i++) {
            for(int j = 0; j < big - a; j++) {
                if (a == 0) {
                    printf("1");
                    return 0;
                }
                else if (arr[i][j] == arr[a + i][j] && arr[i][a + j] == arr[a + i][a + j] && arr[i][a + j] == arr[i][j]) {
                    printf("%d", (a + 1) * (a + 1));  
                    return 0;           
                }
            }
         }
        }
    }
    else {
        small = b;
        big = a;
        a--;
        b--;
        for(int k = 0; k <= b; b--) {
         for(int i = 0; i < big - b; i++) {
            for(int j = 0; j < small - b; j++) {
                if (b == 0) {
                    printf("1");
                    return 0;
                }
                else if (arr[i][j] == arr[b + i][j] && arr[i][b + j] == arr[b + i][b + j] && arr[i][b + j] == arr[i][j]) {
                    printf("%d", (b + 1) * (b + 1));  
                    return 0;      
                }
            }
         }
        }
    }
}

삼중 for문은 처음 써보네요. ㅎ

 

제가 이 문제를 2시간 동안 풀고 설명해드릴 염치는 없습니다.

다 풀고 검색해보니, Elly라는 분이 정말 잘 풀어두셨더라고요.

 

혹시나 실수로 제 블로그에 들어와서 이런 더러운 코드를 보셨다면

이렇게 푸는 사람도 있구나.

하시고 Elly 님의 네이버 블로그를 참고하시면 좋을 것 같습니다.

 

나중에 제가 더 똑똑해지면 무슨 생각으로 코드를 짰는지 수정하여 추가하겠습니다.

정말 많이 틀렸네요.

그래도 맞춰서 기분은 좋습니다.

 

 

감사합니다.

'백준' 카테고리의 다른 글

[C언어] 백준 | 24228번 젓가락  (0) 2022.04.01
[C언어] 백준 | 11057번 오르막 수  (0) 2022.03.31
[C언어] 백준 | 11720번 숫자의 합  (0) 2022.03.30
[C언어] 백준 | 4375번 1  (0) 2022.03.29
[C언어] 백준 | 2164번 카드2  (0) 2022.03.26

+ Recent posts