도비LOG(跳飛錄)

도비의 AI 엔지니어 도전기

알고리즘

[프로그래머스] 가장 긴 팰린드롬 - 파이썬 풀이

나쁜도비 2023. 5. 9. 19:23

https://school.programmers.co.kr/learn/courses/30/lessons/12904

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr


문제 요약

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


풀이

파이썬에서 문자열의 팰린드롬 여부는 아래의 코드를 이용해 간단하게 검증할 수 있다. 문자열을 s라고 한다면,

s == s[::-1]
이때의 출력이 True라면 팰린드롬이며 그렇지 않으면 팰린드롬이 아니다.
이 코드를 활용하여 다음과 같이 문제를 해결할 수 있다.

# 프로그래머스 가장 긴 팰린드롬 () https://school.programmers.co.kr/learn/courses/30/lessons/12904
def solution(s):
    answer = 0
    for i in range(len(s)):
        for j in range(i+1, len(s)+1):
            if s[i:j] == s[i:j][::-1]:
                answer = max(answer, len(s[i:j]))
    return answer

가장 긴 부분 팰린드롬을 찾아야 하므로, 문자열 앞부분부터 for문을 돈다. 이때 i부터 j까지 인덱싱해가면서 부분 문자열이 팰린드롬인지 아닌지를 검증해준다. 팰린드롬이 맞다면 answer를 지금까지 팰린드롬이었던 부분문자열들의 길이의 최댓값으로 업데이트해준다.

728x90