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
'알고리즘' 카테고리의 다른 글
[백준 2407] 조합 - 파이썬 풀이 (실버3) (0) | 2023.05.09 |
---|---|
[백준 1629] 곱셈 - 파이썬 풀이 (실버1) (0) | 2023.05.09 |
[백준 1316] 그룹 단어 체커 - 파이썬 풀이 (실버5) (0) | 2023.05.09 |
[프로그래머스 단속카메라] - Python 풀이 (0) | 2023.05.08 |
[프로그래머스 N진수 게임] - Python 풀이 (LV.2) (1) | 2023.05.08 |