본문 바로가기
Computer Science

APS 기 실 회문2 / string

by OKOK 2018. 12. 13.

1. stirng i,j,k 변수 사용하고

2. if else, break, continue 사용해서 완성함

3. 다른 스택을 이용한 풀이도 있음

4. 배열과 문자열에 익숙해질 필요가 있음 


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
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
 
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
 
#define MAX 8
char a[MAX+1][MAX+1];
 
int i;
int j;
int k;
int t;
int test = 0;
int len = 0;
int max = 0;
 
void process(void)
{
    for (i = 0; i < MAX; i++)
    {
        scanf("%s", a[i]);
    }
 
    for (i = 1; i < MAX-1; i++)
    {
        for (j = 1; j < MAX-1; j++)
        {
            len = 1;
            for (k = 1; j - k >= 0 && j + k <= MAX; k++)
            {
                if (a[i][j - k] == a[i][j + k])
                {
                    len += 2;
                    if (max < len)
                    {
                        max = len;
                    }
                }
                else break;
            }
            if (a[i][j] == a[i][j + 1])
            {
                len = 2;
                for (k = 1; j - k >= 0 && j + k + 1 < MAX; k++)
                {
                    if (a[i][j - k] == a[i][j + k + 1])
                    {
                        len += 2;
                        if (max < len)
                        {
                            max = len;
                        }
                    }
                    else
                    {
                        break;
                    }
                }
            }
 
            len = 1;
            for (k = 1; j - k >= 0 && j + k < MAX; k++)
            {
                if (a[j - k][i] == a[j + k][i])
                {
                    len += 2;
                    if (max < len)
                    {
                        max = len;
                    }
                }
                else break;
            }
            if (a[j][i] == a[j + 1][i])
            {
                len = 2;
                for (k = 1; j - k >= 0 && j + k + 1 < MAX; k++)
                {
                    if (a[j - k][i] == a[j + k + 1][i])
                    {
                        len += 2;
                        if (max < len)
                        {
                            max = len;
                        }
                    }
                    else break;
                }
            }
        }
    }
    printf("#%d %d\n", test, max);
    max = 0;
}
 
int main(void)
{
    freopen("input.txt""r", stdin);
    for (t = 1; t <= 10; t++)
    {
        scanf("%d"&test);
        process();
    }
    return 0;
}
 
cs


'Computer Science' 카테고리의 다른 글

A 기 실 괄호짝짓기 / 스택  (0) 2018.12.13
A 기 실 거듭 제곱 / 재귀  (0) 2018.12.13
APS 기 실 회문1 / string  (0) 2018.12.13
APS 기본 실습문제 String / string  (0) 2018.12.13
APS 기본 실습 Ladder2 / 배열  (0) 2018.12.13

댓글