주니어 데이터 엔지니어 우솨's 개발일지

코딩 테스트(Python) 가장 긴 팰린드롬 본문

코딩 테스트

코딩 테스트(Python) 가장 긴 팰린드롬

우솨 2024. 12. 19. 23:55

문제 설명

앞뒤를 뒤집어도 똑같은 문자열을 팰린드롬(palindrome)이라고 합니다.

문자열 s가 주어질 때, s의 부분문자열(Substring)중 가장 긴 팰린드롬의 길이를 return 하는 solution 함수를 완성해 주세요.

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

 

def solution(s):
    answer = 0  # 가장 긴 팰린드롬 문자열의 길이를 저장할 변수
    # 문자열의 모든 부분 문자열을 탐색
    for i in range(len(s)):  # i는 부분 문자열의 시작 인덱스
        for j in range(len(s), i, -1):  # j는 부분 문자열의 끝 인덱스 (i보다 뒤에서부터 탐색)
            new_s = s[i:j]  # i부터 j까지의 부분 문자열을 추출
            if new_s == new_s[::-1]:  # new_s가 팰린드롬이면
                answer = max(answer, len(new_s))  # 가장 긴 팰린드롬의 길이를 갱신

    return answer  # 가장 긴 팰린드롬의 길이를 반환