문제 링크


접근 방법

풀이

import java.io.*;

public class Main {
    public static void main(String[] args) throws IOException {
        // System.out.println("입력:");
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));

        String s = br.readLine();
        int result = solution(s);

        // System.out.println("출력:");
        bw.write(result + System.lineSeparator());

        br.close();
        bw.close();
    }

    private static int solution(String s) {

        String reverse = new StringBuilder(s).reverse().toString();
        // case 1. 팰린드롬 아닌 경우: 문자 길이 반환
        if (!s.equals(reverse)) {
            return s.length();
        }

        // case 2. 가장 긴 부분 문자열 길이 구하기
        for (int i=0 ; i < s.length()/2 ; ++i) {
            char character = s.charAt(i);
            char nextCharacter = s.charAt(i+1);

            if (character != nextCharacter) {
                return s.length()-1;
            }
        }

        // case 3. 두 케이스 모두 통과되었다면 -1
        return -1;
    }

}