본문 바로가기

OJ

[BOJ] 1254 팰린드롬 만들기 (JAVA)

https://www.acmicpc.net/problem/1254

 

1254번: 팰린드롬 만들기

동호와 규완이는 212호에서 문자열에 대해 공부하고 있다. 규완이는 팰린드롬을 엄청나게 좋아한다. 팰린드롬이란 앞에서부터 읽으나 뒤에서부터 읽으나 같게 읽히는 문자열을 말한다. 동호는

www.acmicpc.net

깔끔하지 못합니다.

 

import java.io.BufferedReader;
import java.io.InputStreamReader;

public class Main {
	
    public static void main(String[] args) throws Exception {

        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        char[] input = br.readLine().toCharArray();
        int len = input.length;

        if (len < 2) {
            System.out.print(len);
            return;
        }

        for (int i = len / 2; i < len; i++) {

            if (input[i] == input[i - 1]) {
                int j = 0;
                int l = 1;
                while (true) {
                    if ((i - l == 0 && i + j != len - 1) || input[i - l] != input[i + j]) break;
                    if (i + j == len - 1) {
                        System.out.print(len * 2 - (1 + j + l));
                        return;
                    }
                    j++;
                    l++;
                }
            }

            if (i == len - 1) {
                System.out.print(len * 2 - 1);
                return;
            }

            if (input[i - 1] == input[i + 1]) {
                int j = 1;
                while (true) {
                    if (input[i - j] != input[i + j]) break;
                    if (i + j == len - 1) {
                        System.out.print(len * 2 - (1 + j * 2));
                        return;
                    }
                    j++;
                }
            }

        }

    }

}

'OJ' 카테고리의 다른 글

[BOJ] 5555 반지 (JAVA)  (0) 2023.02.22
[BOJ] 2864 5와 6의 차이 (JAVA)  (0) 2023.02.21
[BOJ] 10820 문자열 분석 (JAVA)  (0) 2023.02.19
[BOJ] 4358 생태학 (JAVA)  (0) 2023.02.18
[BOJ] 1032 명령 프롬프트 (JAVA)  (0) 2023.02.17