1. 문제
2. 코드
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
String s = in.readLine();
int ans = s.length();
for(int i = 0; i < s.length(); i++) {
if(isPalind(s.substring(i))) {
break;
}
ans++;
}
System.out.println(ans);
}
public static boolean isPalind(String s) {
int start = 0;
int last = s.length()-1;
while(start <= last) {
if(s.charAt(start) != s.charAt(last))
return false;
start++;
last--;
}
return true;
}
}
3. 풀이
- abab를 예시로 들어 설명하면, 우선 substring으로 앞에서부터 문자열을 잘라 팰린드롬인지 확인한다.
- abab는 팰린드롬이 아니므로 문자열의 길이인 cnt를 증가시키고, 앞에서부터 문자열을 잘라 재 확인한다.
- bab는 팰린드롬이므로 멈춘다.
- 이런식으로 문자열에서 팰린드롬을 발견한 순간 그 뒤 문자열을 팰린드롬 문자열 앞 문자열의 개수만큼 붙여주면 된다.
4. 링크
https://www.acmicpc.net/problem/1254