프로그래머스 - 가장 긴 팰린드롬 - Java

chaemin·2024년 7월 5일
0

프로그래머스

목록 보기
58/64

1. 문제

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

2. 풀이

📌팰린드롬의 길이를 구하는 것이다. 따라서 길이만큼 팰린드롬을 검사하는 것이다.

🚨이때 reverse()를 쓰게되면 시간초과가 나게 된다.

따라서 while문을 통해 글자 하나하나씩을 비교하여 틀릴경우 false를 return 하는 것이 가장 빨리 팰린드롬을 확인하는 방법이다.

3. 전체 코드

import java.util.*;

class Solution
{
    public int solution(String s)
    {
        for(int i = s.length(); i > 0; i--){ // 팰린드롬 길이
            for(int j = 0; j + i <= s.length(); j++){ // 시작 index
                if(isPalin(j, j+i-1, s)){
                    return i;
                }
            }
        }
        return 0;
    }
    
    public boolean isPalin(int start, int end, 
String s){
        while(start < end){
            if(s.charAt(start) != s.charAt(end)){
                return false;
            }
            start++;
            end--;
        }
        return true;
    }
}

0개의 댓글