강의로 돌아가기
김원용

가장 긴 펠린드롬 문제에서

테스트 3 〉 실패 (0.03ms, 3.79MB)
테스트 4 〉 실패 (0.03ms, 3.79MB)
테스트 5 〉 실패 (0.03ms, 3.76MB)
테스트 6 〉 실패 (0.03ms, 3.78MB)
테스트 7 〉 실패 (0.02ms, 3.84MB)
테스트 8 〉 실패 (0.03ms, 3.77MB)

테스트 12 〉 실패 (0.03ms, 3.77MB)
테스트 13 〉 실패 (0.03ms, 3.84MB)
테스트 14 〉 실패 (0.03ms, 3.79MB)
테스트 15 〉 실패 (0.03ms, 3.79MB)
테스트 16 〉 실패 (0.03ms, 3.88MB)

테스트 19 〉 실패 (0.03ms, 3.87MB)
테스트 20 〉 실패 (0.03ms, 3.87MB)
테스트 21 〉 실패 (0.03ms, 3.76MB)

보니까 많이도 실패했네요...

이것들 요구조건이 뭔가요? 뭘 알려줘야 고치지 ㅠ

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

int solution(char* s) {
    int answer = 0;
    int palind = 0;
    int length = strlen(s);
    int i, j;

    if(length == 1) {
        answer = 1;
        return answer;
    }


    for(i=1; i<length; i++)
    {
        if(s[i-1] == s[i+1])
        {
            palind = 0;
            for(j=1; i-j>=0 && i+j<length; j++)
            {
                if(s[i-j] == s[i+j]) palind++;
            }
            palind = palind * 2 + 1;
            if(palind > answer) answer = palind;
        }
    }
    return (answer == 0 && length > 1)? 1 : answer;
}
0 개의 답변
답변 쓰기
이 입력폼은 마크다운 문법을 지원합니다. 마크다운 가이드 를 참고하세요.