1216. [S/W 문제해결 기본] 3일차 - 회문2

SW 업무 관련/SW Expert Academy

1216. [S/W 문제해결 기본] 3일차 - 회문2

WillBe_ 2018. 7. 28. 23:43


회문 1 푼거 살짝 수정해서 풀려다가...1시간 걸렸다.............


회문 1은 크기가 10인데...요건 100!!!!!다른거 다 10에서 100 고쳤는데 입력을 계속 10줄만 받게해놨었다ㅜ,ㅠ하............


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
#include <stdio.h>
#include <string.h>
 
char map[101][101];
 
int Check_X(int len, int y, int x)
{
    for (int i = 0; i < len / 2; i++)
    {
        if (map[y][x + i] != map[y][x + len - 1 - i])
        {
            return 0;
        }
    }
    return len;
}
 
int Check_Y(int len, int y, int x)
{
    for (int i = 0; i < len / 2; i++)
    {
        if (map[y + i][x] != map[y + len - 1 - i][x])
        {
            return 0;
        }
    }
    return len;
}
 
 
int main()
{
    for (int i = 1; i <= 10; i++)
    {
        int len, count = 0;
        scanf("%d"&len);
        for (int a = 0; a < 100; a++)
        {
            scanf("%s", map[a]);
        }
 
        len = 0;
        for (int k = 0; k < 100; k++)
        {
            for (int a = 0; a <= 100 - k; a++)
            {
                for (int b = 0; b < 100; b++)
                {
                    int Length = Check_Y(k, a, b);
                    if (Length > len)
                        len = Length;
                }
            }
 
            for (int a = 0; a < 100; a++)
            {
                for (int b = 0; b <= 100 - k; b++)
                {
                     
                    int Length = Check_X(k, a, b);
                    if (Length > len)
                        len = Length;
                }
            }
        }
        printf("#%d %d\n", i, len);
    }
 
    return 0;
}
cs