반응형
앞에서 읽으나 뒤로 읽으나 같아지는 팰린드롬을 가장 짧게 만드는 문제이다.
근데 사실 푼 지 거의 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;
}
}
}
}
'컴퓨터 공학 > 백준' 카테고리의 다른 글
[백준] JAVA 자바 : 바이러스 (2606번) (0) | 2024.07.11 |
---|---|
[백준] JAVA 자바 : 일곱 난쟁이 (2309번) (0) | 2024.06.21 |
[백준] JAVA 자바 : 영화감독 숌 (1436번) (0) | 2024.06.21 |
[백준] JAVA 자바 : 덩치 (7568번) (0) | 2024.05.25 |
[백준] JAVA 자바 : 체스판 다시 칠하기 (1018번) (0) | 2024.05.24 |