dragons6641   3년 전

소스 코드 제출 결과 : "틀렸습니다"


테스트한 입력 목록(예제 입력 포함)


input1 :
10
1 3 1 5 7 7 5 7 7 5

output1 : 4

input2 :
11
1 5 7 9 7 1 2 4 6 8 6

output2 : 3

input3 :
7
3 2 7 7 5 8 6

output3 : 2

input4 :
1
1

output4 : 1

input5 :
2
1 1

output5 : 2

input6 :
2
1 2

output6 : 1

input7 :
2
2 1

output7 : 1

input8 :
3
1 2 1

output8 : 3

input9 :
3
1 2 2

output9 : 2

input10 :
3
2 2 1

output10 : 2

input11 :
5
7 7 7 8 7

output11 : 3

input12 :
5
7 7 7 7 7

output12 : 2

input13 :
9
1 2 3 2 1 2 3 2 1

output13 : 5

input14 :
9
1 3 3 3 1 3 3 3 1

output14 : 2

input15 :
10
1 3 1 5 7 7 9 7 7 5

output15 : 3


코드 설명
1. 투 포인터 알고리즘으로 i = 3부터 i = N까지 순회
2. (rp - 1번째 값 == 이전 값)과 (rp번째 값 == 현재 값)을 비교
2-1. 우변이 크면 증가하는 중이므로 rp포인터 증가
2-2. 좌변이 크면 감소하는 중이므로 이전 값을 중심으로 팰린드롬 길이 체크
-> 팰린드롬 길이가 홀수인 경우
2-3. 두 값이 같으면 이전 값과 현재 값을 중심으로 팰린드롬 길이 체크
-> 팰린드롬 길이가 짝수인 경우
3. 길이가 1 또는 2인 경우는 예외처리

저는 {1}, {2, 2}도 문제 조건에 만족하는 수열이라고 생각했는데, 혹시 이 점이 잘못되었는지 궁금합니다.
제 코드의 오류를 발견하신다면 답변 남겨주시면 정말 감사드리겠습니다!



댓글을 작성하려면 로그인해야 합니다.