[programmers] 가장 긴 팰린드롬

resilient

·

2021. 7. 30. 12:11

728x90
반응형

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

 

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

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

programmers.co.kr

  • 이 문제는 문자열을 어떻게 쪼개고 비교할 것인가에 대한 문제였다.
  • 처음에는 괄호 만들기처럼 스택에 넣고 하나하나 꺼내주면서 비교해주려고 했는데 그렇게 되면 가장 긴 팰린드롬을 구하기가 까다로워질 거 같아서 그냥 2중 for문으로 비교했다.
  • 첫 번째 for문으로는 i를 주어진 문자열 길이 만큼 돌려주면서 j로는 i다음 문자부터 끝까지 비교했다.
  • 그래서 현재 짜여진 문자열과 그 문자열을 뒤집은게 같으면 answer을 max로 갱신해주도록 구현했다.
def solution(s):
    answer = 0
    for i in range(len(s)):
        for j in range(i+1,len(s)+1):
            List = s[i:j]
            if List == List[::-1]:
                answer = max(answer,len(s[i:j]))
    return answer
반응형