정리

프로그래머스: 가장 긴 팰린드롬(Level 3) 본문

Programming/프로그래머스

프로그래머스: 가장 긴 팰린드롬(Level 3)

H.J.Park 2022. 2. 5. 07:23

프로그래머스: 가장 긴 팰린드롬(Level 3)

 

 

코딩테스트 연습 - 가장 긴 팰린드롬

앞뒤를 뒤집어도 똑같은 문자열을 팰린드롬(palindrome)이라고 합니다. 문자열 s가 주어질 때, s의 부분문자열(Substring)중 가장 긴 팰린드롬의 길이를 return 하는 solution 함수를 완성해 주세요. 예를들

programmers.co.kr

 

문제 설명

앞뒤를 뒤집어도 똑같은 문자열을 팰린드롬(palindrome)이라고 합니다.
문자열 s가 주어질 때, s의 부분문자열(Substring)중 가장 긴 팰린드롬의 길이를 return 하는 solution 함수를 완성해 주세요.

예를들면, 문자열 s가 "abcdcba"이면 7을 return하고 "abacde"이면 3을 return합니다.

 

제한사항

  • 문자열 s의 길이 : 2,500 이하의 자연수
  • 문자열 s는 알파벳 소문자로만 구성

 

풀이 방법

짝수 길이 팰린드롬과 홀수 길이 팰린드롬으로 나눠서 풀이를 진행했다.

for loop을 통해서 s[i]가 팰린드롬의 중앙이라고 가정하고 양쪽으로 벌려나가면서 최대 길이 팰린드롬을 찾아나갔다.

짝수 길이 팰린드롬의 경우 s[i] 와 s[i + 1]가 정중앙이고,

홀수 길이 팰린드롬의 경우 s[i]가 정중앙이 된다.

이후에는 중앙을 기준으로 양쪽으로 하나씩 증감하여 길이의 최댓값을 갱신했다.

 

 

Comments