-
[파이썬] 가장 긴 팰린드롬 (파이썬)코딩 테스트/프로그래머스 2023. 5. 8. 20:54
문제 설명
https://school.programmers.co.kr/learn/courses/30/lessons/12904
문제 풀이
- 처음에는 이분 탐색으로 풀려고 했는데 생각해보니 결국 모든 지점에서 다 따져봐야함
- 특정 지점을 mid라고 두고 [0]부터 [n-1]까지 탐색
- 팰린드롬이 mid를 중심으로 좌우가 같은 경우 (팰린드롬 길이가 홀수인 경우)
- mid와 그 오른쪽 값이 같은 경우 이 두가지로 나눠서 품 (팰린드롬 길이가 짝수인 경우)
소스 코드
def solution(se): answer = 0 n = len(se) for mid in range(n): left,right = mid-1,mid+1 ord = 1 while(left>=0 and right<n): if se[left]==se[right]: left-=1 right+=1 ord+=2 else: break rrd=0 left,right = mid,mid+1 while(left>=0 and right<n): if se[left]==se[right]: left-=1 right+=1 rrd+=2 else: break answer= max(answer,max(ord,rrd)) return answer
'코딩 테스트 > 프로그래머스' 카테고리의 다른 글
[탐색] 미로 탈출 명령어 ( 파이썬 ) (0) 2023.05.14 [이분 검색] 외벽 점검 (파이썬, 카카오) (1) 2023.05.12 [최단거리] 부대 복귀 (파이썬) (0) 2023.05.06 [링크드리스트] 표 편집 (파이썬) (0) 2023.05.06 [파이썬] 풍선 터트리기 (0) 2023.05.03