본문 바로가기
컴퓨터 공학/백준

[백준] JAVA 자바 : 팰린드롬 만들기 (1254번)

by kim-dev 2024. 7. 9.
반응형


앞에서 읽으나 뒤로 읽으나 같아지는 팰린드롬을 가장 짧게 만드는 문제이다.

 

근데 사실 푼 지 거의 2주가 지나서 어떻게 풀었는지 자세하게 기억이 나진 않는다(...)
분명 보고 쉽게 파악할 수 있는 코드를 짜려고 노력했는데...ㅋㅋㅋ

 

대충 i~j번째 글자를 잘라내서, 뒤집어도 똑같은 단어 중 가장 길이가 짧다면 그 때 남은 단어를 붙인 길이를 구하는 방식으로 짰던 것 같다.

자세한 건 나도 좀 더 봐야 알 수 있을 듯...

import java.util.*;
import java.io.*;

public class MakePalindrome {

    public static void main(String[] args) throws IOException {
      BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
      
      String S = br.readLine();
      
      for (int i=0; i<S.length(); i++) {
        String tmp = S.substring(i);
        
        String restmp = "";
        // i번째 인덱스부터 단어를 자름
        for (int j=tmp.length()-1; j>=0; j--) {
          restmp += tmp.charAt(j);
        }
        
        if (tmp.equals(restmp)) { // 자른 단어가 뒤집어도 똑같다면
          int size = restmp.length() + (2*i); // 그 때 앞뒤로 남은 단어를 붙인 길이를 구함
          System.out.println(size);
          break;
        }
      }
      
  }
}