본문 바로가기

알고리즘 공부 및 문제 풀이/프로그래머스(PRO)

[pro] 프로그래머스 level3 12904 가장 긴 팰린드롬 (Java)

[문제]

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

 

프로그래머스

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

programmers.co.kr

 

[풀이]

가장 긴 길이부터(s.length()) 처음 시작 인덱스를 달리하며 만들 수 있는 모든 부분 문자열에 대해 팰린드롬인지 확인한다.

단순 for문으로 해결 가능하다. 

 

[코드]

 

class Solution
{
    public int solution(String s)
    {
        int answer = 0;
        //가장 긴 팰린드롬의 길이를 return
        
        for(int len=s.length(); len>=1; len--){
            //시작 인덱스
            for(int start=0; start+len<=s.length(); start++){
                boolean check = true;
                for(int k=0; k<len/2; k++){
                    if(s.charAt(start+k)!=s.charAt(start+len-k-1)){
                        check = false;
                        break;
                    }
                }
                if(check){
                    return len;
                }
            }
        }
        
        return answer;
    }
}