기타/코딩테스트

(코테) 프로그래머스_가장 긴 팰린드롬 * 투포인터(팰린드롬 )

불광동 물주먹 2025. 8. 21. 15:28

 

 

 

 

class Solution{
    public int solution(String s){
        int max = 1;
        
        
        for(int i =0;i<s.length() ;i++){
            max = Math.max(max , extend(s,i,i));            
            max = Math.max(max , extend(s,i,i+1) );
        }

        

        return max;
    }
    
    public int extend(String s,int left, int right){                        
        while(left>=0 && right < s.length() &&  s.charAt(left) == s.charAt(right)){
            left--;
            right++;
        }                
        return right - left -1;
    }
}

 

 

 

회고

1. 투포인터 개념 확립  

 - 기존에 투포인터 개념이 모호 했다. 하지만 이 문제를 풀고 정확히 이해가 됐다 

한 배열? 안에  두개의 인덱스(포인터)를 두고  확장 혹은 축소로 정답 도출하는 방식

 

2. 유사한 알고리즘  윈도우슬라이딩  

투포인터와 비슷하지만 (두개의 포인터를 쓴다는 부분) 다르다

차이점- 투포인터는 확장 축소로 탐색하는 길이가  조절이 된다.

그러나 윈도우 슬라이딩은  고정된 크기 혹은 가변의 크기로 한쪽 방향으로 옆으로 밀면서 이동하며 정답 도출