728x90
https://school.programmers.co.kr/learn/courses/30/lessons/12904
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
팰린드롬의 특성은 대칭이다
모든 시작점에서 팰린드롬이 가능한 건 모두 조사한다
현재 자리에서 양옆으로 퍼져나가면서 두 값이 같다면 이건 대칭이니까 팰린드롬이다 이런 식으로 한쪽이 문자열의 끝까지 가거나 다른 값이 나올 때까지 진행한다
멈추었을 때 반복한 회수가 팰린드롬길이 이다
팰린드롬 길이가 홀수일 때와 짝수일 때 방법이 약간 다른데
홀수일 때는 현재 자리 현재의 양옆 그 양옆 순서를 숫자로 표현하면 21012 이런 식으로 진행하고
짝수일 때는 210012 이런 식으로 진행한다 시작 값만 다르고 다른 건 똑같다
def solution(t):
m=1
l=len(t)
for i in range(l):
s=s1=0
a=b=1
for j in range(min(i,l-i)+1):
if a==1:
if i+j<l and t[i-j]==t[i+j]:
s+=1
else:
a=0
if b==1:
if i+j+1<l and t[i-j]==t[i+j+1]:
s1+=1
else:
b=0
if a+b==0:
break
a=max(s*2-1,s1*2)
if a>m:
m=a
return m
'알고리즘 > 프로그래머스' 카테고리의 다른 글
할인 행사 (0) | 2023.05.31 |
---|---|
숫자 게임 python (0) | 2023.05.24 |
기지국 설치 python (0) | 2023.05.22 |
스킬트리 - python (0) | 2023.05.20 |
H-Index (0) | 2023.05.18 |
댓글