ALGORITHM/PROGRAMMERS

[프로그래머스] 가장 긴 팰린드롬

0298 2021. 9. 1. 23:39

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

 

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

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

programmers.co.kr

2021-09-01


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
class Solution {
    public int solution(String s) {
       for(int len = s.length(); len > 0; len--) {
            for(int left = 0; left < s.length()-len+1; left++) {
                int l = left;
                int r = len - 1 + left;
                boolean flag = false;
                while(l < r) {
                    if(s.charAt(l) != s.charAt(r)) {
                        flag = true;
                        break;
                    }
                    l++;
                    r--;
                }
                if(!flag) return len;
            }
        }
        return 1;
    }
}
cs

#문제풀이

가장 길게 만들 수 있는 길이부터 차례대로 팰린드롬이 가능한지 체크한다.