Post

Programmers_연습문제 가장 긴 펠린드롬(python)

프로그래머스 -가장 긴 펠린드롬 문제 입니다.

1. 문제

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


2. 분류 및 난이도

Programmers 문제입니다.
연습문제 문제입니다.

Level 3난이도의 문제입니다.


3. 생각한 것들(문제 접근 방법)

  • leetcode 5번이 똑같은 문제입니다.
  • 하나의 인덱스를 기준으로 pailndrome을 찾고 확장합니다.

4. 접근 방법을 적용한 코드

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
def solution(s):
    if len(s) <= 1 :
        return 1
    max_len =1 
    min_left = 0 
    max_right = len(s)-1
    mid = 0 
    while mid < len(s) : 
        left = mid
        right = mid
        while right < max_right and s[right] == s[right+1] : 
            right+=1
            
        mid = right+1
        while right < max_right and left > 0 and s[right+1] == s[left-1] : 
            right+=1
            left-=1
        newlen = right-left+1
        if newlen > max_len : 
            max_len = newlen
    return max_len

5. 결과

필요시. c++ 짜드리겠습니다. 설명이 필요시 댓글달아주세요.

This post is licensed under CC BY 4.0 by the author.