강의로 돌아가기
김영민

테스트 18번 요구조건이 뭐죠?

테스트 18번 요구조건이 뭐죠?

작성중인 코드―solution.c
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
#include <stdio.h>
#include <stdbool.h>
#include <stdlib.h>

int solution(char* s) {
    int answer = 0;
    int cnt;
    int i, j, k;
    int truep = 0;

    for (cnt = 0; s[cnt]; cnt++);

    if (cnt == 1) return 1;
    if (cnt == 0) return 0;

    if (0 <= cnt <= 2500) {
        for (i = cnt; i > 1; i--) {
            for (j = 0; j <= cnt - i; j++) {
                for (k = 0; k < (i / 2); k++) {
                    if (s[j + k] != s[i - 1 + j - k]) break;
                    if (s[j + k] == s[i - 1 + j - k]) truep++;

                    if (truep == (i / 2)) {
                        answer = i;
                        break;
                    }
                }
                truep = 0;
                if (answer != 0) break;
            }
            if (answer != 0) break;
        }
    }

    else return -1;

    return answer;
}
0 개의 답변
답변 쓰기
이 입력폼은 마크다운 문법을 지원합니다. 마크다운 가이드 를 참고하세요.