PALINDROMIZE 오답 질문입니다

  • pumpyboom
    pumpyboom

    PALINDROMIZE

    문제 질문입니다..
    아무리 해도 오답이 나옵니다.
    시간초과가 되서 for문을 줄여서 알고리즘을 새로 작성하였고...
    결국 어떠한 예외 케이스가 있는지... 어디가 잘못되었는지 발견하지 못하여 질문을 남깁니다.

    import java.util.Scanner;

    public class Main {

    static Scanner scan = new Scanner(System.in);
    
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        int testCase = scan.nextInt();
        while(testCase > 0)
        {
            palindromize();
            testCase--;
        }
    }
    
    private static void palindromize() {
    
        String s = scan.next();
        int length = s.length();
    
    
    
        int leftIndex = 0;
        int rightindex = s.length()-1;
        int lastIndex = s.length()-1;
        int size = s.length();
    
        char[] arr = new char[length];
        for(int i=0; i<length; i++)
        {
            arr[i] = s.charAt(i);
        }
    
    
        while( !(leftIndex==rightindex) && leftIndex<=lastIndex && rightindex<=lastIndex)
        {
            if(arr[leftIndex]==arr[rightindex])
            {
                leftIndex++;
                rightindex--;
            }
            else
            {
                size++;
                if(rightindex<lastIndex)
                    rightindex++;
                else
                    leftIndex++;
    
            }
    
    
        }
    System.out.println(size);
    }

    }


    2년 전
1개의 댓글이 있습니다.
  • JongMan
    JongMan

    알고리즘을 설명해 주시면 좀더 답이 빨리 달릴 것 같습니다. (알고리즘을 설명하다 보면 스스로 답을 찾을 수 있는 경우도 흔합니다.)


    2년 전 link
  • 정회원 권한이 있어야 커멘트를 다실 수 있습니다. 정회원이 되시려면 온라인 저지에서 5문제 이상을 푸시고, 가입 후 7일 이상이 지나셔야 합니다. 현재 문제를 푸셨습니다.