코드 설명 1. 투 포인터 알고리즘으로 i = 3부터 i = N까지 순회 2. (rp - 1번째 값 == 이전 값)과 (rp번째 값 == 현재 값)을 비교 2-1. 우변이 크면 증가하는 중이므로 rp포인터 증가 2-2. 좌변이 크면 감소하는 중이므로 이전 값을 중심으로 팰린드롬 길이 체크 -> 팰린드롬 길이가 홀수인 경우 2-3. 두 값이 같으면 이전 값과 현재 값을 중심으로 팰린드롬 길이 체크 -> 팰린드롬 길이가 짝수인 경우 3. 길이가 1 또는 2인 경우는 예외처리
저는 {1}, {2, 2}도 문제 조건에 만족하는 수열이라고 생각했는데, 혹시 이 점이 잘못되었는지 궁금합니다. 제 코드의 오류를 발견하신다면 답변 남겨주시면 정말 감사드리겠습니다!
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}도 문제 조건에 만족하는 수열이라고 생각했는데, 혹시 이 점이 잘못되었는지 궁금합니다.
제 코드의 오류를 발견하신다면 답변 남겨주시면 정말 감사드리겠습니다!