Algorithm/프로그래머스

[Lv3] 가장 긴 팰린드롬 - python

RIEN😚 2022. 9. 29. 16:58
728x90
반응형
 

프로그래머스

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

programmers.co.kr

🍿 문제설명

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

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

 

📌 제한사항

1. 문자열 s의 길이: 2,500 이하의 자연수

2. 문자열 s는 알파벳 소문자로만 구성

 

🛠 풀이

파이썬에서는 해당 문제를 쉽게 풀 수 있습니다.

가능한 모든 부분문자열을 만들고, 해당 부분문자열이 팰린드롬인지 검사하면 되요. 🤗

1. 부분문자열

size = len(s)
for i in range(size):
	for j in range(i+1, size+1):
    	sub = s[i:j]

2. 팰린드롬인지 검사하기

def isPalindrome(s):
	return s == s[::-1]

연습문제여서 그런지 효율성을 생각하지 않고 풀어도 효율성 테스트까지 모두 통과됩니다.ㅎㅎ

 

🔥 코드

def solution(s):
	size = len(s)
    answer = 0
    for i in range(size):
    	for j in range(i+1, size+1):
        	if isPalindrome(s[i:j]):
            	answer = max(answer, j-i)
    return answer

def isPalindrome(s):
	return s == s[::-1]

 

반응형