규칙을 찾으면 코드 구현 자체는 그렇게 어렵지 않는 문제였다. (물론 늘 그렇지만 규칙을 찾는 게 어렵다는 게 문제...)
내가 생각한 규칙은 문자열의 맨 뒤는 고정하고, 앞에서부터 차례로 문자열을 확인하여 현재의 문자열이 팰린드롬일 때까지 인덱스를 1씩 늘려가는 것이었다.
그리고 현재 문자열이 팰린드롬이라면, 현재 인덱스의 값만큼 문자열 길이에 추가해주면 된다. (= 전체 문자열 뒤에 현재 인덱스까지의 문자열을 추가해주는 것)
아래는 전체 소스코드이다.
// 1254 - 팰린드롬 만들기
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
String input = br.readLine();
br.close();
int i = 0;
while (i < input.length()) {
if(isPalindrome(input.substring(i))) break;
i++;
}
bw.write(String.valueOf(input.length() + i));
bw.flush();
bw.close();
}
static boolean isPalindrome(String string) {
boolean result = true;
for (int i = 0; i < string.length() / 2; i++) {
if (string.charAt(i) != string.charAt(string.length() - 1 - i)) {
result = false;
break;
}
}
return result;
}
}